2016-06-20 7 views
1

Warum bekomme ich leere Zeilen, wenn ich Zeilen von MySQL-Datenbank zu DataGridView abrufen? Ich bekomme am Ende die Anzahl der Zeilen, aber es ist leer (es hat keinen Text).Leere Zeilen beim Abrufen von Daten aus der Datenbank in DataGridView in C#

dies mein Code so weit:

 private void button2_Click(object sender, EventArgs e) 
    { 
     string constring = "Data Source = localhost; port = 3306; username = root; password = 0159"; 
     MySqlConnection conDataBase = new MySqlConnection(constring); 
     MySqlCommand cmdDataBase = new MySqlCommand("Select * FROM TopShineDB.Table1 ;", conDataBase); 
     using (MySqlConnection conn = new MySqlConnection(constring)) 
     { 
      try 
      { 
       MySqlDataAdapter sda = new MySqlDataAdapter(); 
       sda.SelectCommand = cmdDataBase; 
       DataTable dt = new DataTable(); 
       sda.Fill(dt); 

       BindingSource bs = new BindingSource(); 
       bs.DataSource = dt; 
       dataGridView1.DataSource = bs; 
       sda.Update(dt); 
      } 
      catch(Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
    } 
+0

überprüfen, ob Ihre Abfrage Rückgabedaten oder nicht aus der Datenbank, Nach 'sda.Fill (dt)' warum verwendet man 'Binding bs'? Versuchen Sie, diese Zeilen zu kommentieren und fügen Sie 'dataGridView1.DataSource = dt;' rathat als bs hinzu. –

+0

Ich versuchte Ihren Vorschlag und es zeigte genau das gleiche –

+0

überprüfen Sie meine Antwort .. lassen Sie mich wissen, ob seine Lösung für Ihr Problem. –

Antwort

0

ich unter Codebeispiel versucht, Daten aus der Datenbank zu erhalten und binden an Datagridview.

var ConnectionString = "your ConnectionString"; 
MySqlConnection connect = new MySqlConnection(ConnectionString); 
MySqlCommand cmd = new MySqlCommand("your query"); 
connect.Open(); 
MySqlDataAdapter adp = new MySqlDataAdapter(cmd); 
DataSet ds = new DataSet(); 
adp.Fill(ds); 
DataTable dt = new DataTable(); 
dt = DtSet.Tables[0]; 
dataGridView1.DataSource = DtSet.Tables[0]; 
connect.Close(); 
+0

Ich habe genau das gleiche Ergebnis. –

+0

Haben Sie debuggt, dass die Datentabelle Daten enthält? –

+0

am Anfang der Anwendung hat es keine Daten. Der Benutzer füllt ihn später auf und speichert die Daten in der Datenbank. Jetzt mache ich das so, beim Start wäre der Benutzer in der Lage, die Daten aus der Datenbank zu laden. –

0

Dieses Versuchen:

private void BindGrid() 
{ 
    string conString = @"Data Source=localhost;port=3306;Initial Catalog=TopShineDB;User Id=root;password=0159"; 
    using (MySqlConnection con = new MySqlConnection(conString)) 
    { 
     using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM Table1", con)) 
     { 
      cmd.CommandType = CommandType.Text; 
      using (MySqlDataAdapter sda = new MySqlDataAdapter(cmd)) 
      { 
       using (DataTable dt = new DataTable()) 
       { 
        sda.Fill(dt); 
        dataGridView1.DataSource = dt; 
       } 
      } 
     } 
    } 
} 
Verwandte Themen