Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - da Mysql a Sql Server
Forum - C# / VB.NET - da Mysql a Sql Server

Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 1:48
Martedì, 20/04/2010
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.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.

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 9:33
Martedì, 20/04/2010
riempire un dataset e passare il dataset alla datagridview?

Ultima modifica effettuata da Mte90 il 20/04/2010 alle 9:33
PM Quote
Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 17:29
Mercoledì, 21/04/2010
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!!!

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 20:23
Mercoledì, 21/04/2010
io do soltanto datasource senza databind e me li passa tranquillamente i valori.

PM Quote
Avatar
enoyr (Normal User)
Newbie


Messaggi: 8
Iscritto: 10/03/2009

Segnala al moderatore
Postato alle 0:58
Giovedì, 22/04/2010
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.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

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 15:10
Giovedì, 22/04/2010
al lavoro sviluppo in net qui ho linux e non ho niente.
fai qualche ricerca sul web.

PM Quote