Oppure

Loading
19/04/10 23:48
enoyr
Ciao a tutti, ho la necessità di creare un Windows Form in Visual c# che contenga un database sqlserver , le cui colonne devono essere popolate da valori ottenuti tramite Query da un Database Mysql .

Fin ora ho creato sia il mio database Mysql su un server sia il mio database sqlserver

Riesco a connettermi al database Mysql e tramite query al db riesco ad inserire i valori dentro una listbox con il seguente codice

private void botton_Click(object sender, EventArgs e)
{string host = "xxx.xxx.xxx.xxx";
string database = "test";
string user = "user";
string password = "pass";
// string strSQL = "SELECT * FROM jos_sobi2_fields_data";

string MyConString = "Data Source=" + host + ";Database=" +
database + ";User ID=" +
user + ";Password=" + password;
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand command = connection.CreateCommand();
MySqlDataReader Reader;

command.CommandText = "SELECT A.title FROM jos_sobi2_item A, jos_sobi2_cat_items_relations B WHERE A.itemid=B.itemid AND B.catid=2";
connection.Open();
Reader = command.ExecuteReader();


while (Reader.Read())
{
//MessageBox.Show("fdsf:" + x);
string thisrow = "";
for (int i = 0; i < Reader.FieldCount; i++){
thisrow += Reader.GetValue(i).ToString() + ",";
listBox1.Items.Add(thisrow);

}
connection.Close();
}


ora per inserire i valori dentro le colonne avevo pensato a qualcosa del genere

artistiDataGridView.CurrentCell = artistiDataGridView.Rows[i].Cells[1];
artistiDataGridView.CurrentCell.Value += Reader.GetValue(i).ToString() + ",";

Ma cosi facendo mi scrive tutti i valori ottenuti dentro la prima cella

Vi prego aiutaremi.
aaa
20/04/10 7:33
Mte90
riempire un dataset e passare il dataset alla datagridview?
Ultima modifica effettuata da Mte90 20/04/10 7:33
aaa
21/04/10 15:29
enoyr
Io avevo pensato anche grazie a un po di aiuto in giro a
private void Form1_Load(object sender, EventArgs e)
{
// TODO: questa riga di codice carica i dati nella tabella 'gufDataSet1.artisti'. È possibile spostarla o rimuoverla se necessario.
this.artistiTableAdapter.Fill(this.gufDataSet1.artisti);
DataSet ds = new DataSet();
try
{
string host = "xx.xxx.xxx.xxx";
string database = "backup";
string user = "backup";
string password = "passw";
string connectionString = "Data Source=" + host + ";Database=" +
database + ";User ID=" +
user + ";Password=" + password;
string queryString = "SELECT A.title FROM jos_sobi2_item A, jos_sobi2_cat_items_relations B WHERE A.itemid=B.itemid AND B.catid=2";



//command.CommandText =



// Connect to the database and run the query.
MySqlConnection connections = new MySqlConnection(connectionString);
MySqlDataAdapter adapter = new MySqlDataAdapter(queryString, connections);

// Fill the DataSet.
adapter.Fill(ds);
MessageBox.Show("Unable to connect to the database0.";);

}
catch (Exception ex)
{

// The connection failed. Display an error message.
MessageBox.Show("Unable to connect to the database1.";);

}
if (ds.Tables.Count > 0)
{
// TuoGridView.DataSource = ds;
// TuoGridView.DataBind();
artistiDataGridView.DataSource = ds;
artistiDataGridView.DataBind();


MessageBox.Show("Unable to connect to the database2.";);
}
else
{
MessageBox.Show("Unable to connect to the database3.";);
}




}
Pero' mi da questo errore Errore    
1    'System.Windows.Forms.DataGridView' non contiene una definizione di 'DataBind' e non è stato trovato alcun metodo di estensione 'DataBind'che accetta un primo argomento di tipo 'System.Windows.Forms.DataGridView'. Probabilmente manca una direttiva using o un riferimento a un assembly.    C:\Users\enoyr\Documents\Visual Studio 2008\Projects\WindowsFormsApplication2\WindowsFormsApplication2\Form1.cs    80    37    WindowsFormsApplication2

io devo inserire i valori estratti dal database mysql nelle colonne del mio database locale
Aiuto!!!
aaa
21/04/10 18:23
Mte90
io do soltanto datasource senza databind e me li passa tranquillamente i valori.
aaa
21/04/10 22:58
enoyr
Mi passi un pezzo di codice cosi vedo.. ti prego non so dove sbattere la testa io ho pensato a fare cosi'
.......
Allora essendo bloccato ho provato a continuare sul versante read

e ho fatto questo

....

....

command.CommandText = "SELECT A.title FROM jos_sobi2_item A, jos_sobi2_cat_items_relations B WHERE A.itemid=B.itemid AND B.catid=2";
connection.Open();
Reader = command.ExecuteReader();

int i = 0;
while (Reader.Read())
{

int d = i + 1;
//this.artisitiDataGridView.Rows.Add(1); PROBLEMA

artisitiDataGridView.CurrentCell = artisitiDataGridView.Rows[i].Cells[1];

artisitiDataGridView.CurrentCell.Value += Reader.GetValue(0).ToString();



MessageBox.Show("riga:" + d);



i++;

}
connection.Close();
}


Alllora se ho un numero di righe gia create funziona tutto se invece il numero di righe è inferiore va in errore:

Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme.
Nome parametro: index

allora ho pensato di inserire la riga

this.artisitiDataGridView.Rows.Add(1)

e mi risponde con errore

Impossibile aggiungere righe a livello di codice all'insieme di righe di DataGridView in caso di associazione a dati del controllo.

Logicamente se scollgeo il datagrid dal database funziona ma io ho bisogno di inserire tutto nel database

quindi che faccio?

Vi prego aiutatemi
aaa
22/04/10 13:10
Mte90
al lavoro sviluppo in net qui ho linux e non ho niente.
fai qualche ricerca sul web.
aaa