2016-03-21 23 views
0

Boş bir DataGridView var, satır veya veri kaynağı kümesi olmadan, bir seçim sorgusu kullanarak onu doldurmalıyım (ve döndürülmüş sütunlardan bazılarını gizlemeliyim).SQL Query kullanarak DataGridView'ı doldurun

3 farklı kod yöntemini denedim, hepsi hata yapmıyor, sadece hiçbir şey yapmıyorlar. Veritabanını sorgulayabilir ve aşağıdaki bağlantı dizesini kullanarak listeleri dolduruyorum.

String connectionString = 
      "Data Source="  + Properties.Settings.Default.Sever + ";" + 
      "Initial Catalog=" + Properties.Settings.Default.Database + ";" + 
      "Integrated Security=TRUE;"; 

1)

public void populateDataGrid1() 
     { 
      SqlConnection cnn = new SqlConnection(connectionString); 

      SqlCommand sqlCmd = new SqlCommand(); 
      sqlCmd.Connection = cnn; 
      sqlCmd.CommandType = CommandType.Text; 
      sqlCmd.CommandText = "SELECT 1,2,3,4 from X inner join Y where Z"; 
      SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd); 

      DataTable dtRecord = new DataTable(); 
      sqlDataAdap.Fill(dtRecord); 
      dg_Data1.DataSource = dtRecord; 
     } 

2)

public void populateDataGrid2() 
     { 
      string select = "SELECT 1,2,3,4 from X inner join Y where Z"; 
      SqlConnection cnn = new SqlConnection(); 
      cnn.ConnectionString = connectionString; 
      SqlDataAdapter dataAdapter = new SqlDataAdapter(select, cnn); 

      SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter); 
      DataSet ds = new DataSet(); 
      dataAdapter.Fill(ds); 
      dg_Data1.ReadOnly = true; 
      dg_Data1.DataSource = ds; 
     } 

3)

string sql = "SELECT 1,2,3,4 from X inner join Y where Z"; 


      using (var connection = new SqlConnection(connectionString)) 
      using (var command = new SqlCommand(sql, connection)) 
      using (var adapter = new SqlDataAdapter(command)) 
      { 
       connection.Open(); 
       var myTable = new DataTable(); 
       adapter.Fill(myTable); 
       dg_Data1.DataSource = myTable; 

      } 
+0

DataGridView'ın AutoGenerateColumns özelliğini kontrol ettiniz mi? Bu bir yere yanlış olarak ayarlanırsa, yeni sütunlar otomatik olarak eklenmez. Ayrıca, sorgunuzun bir şey döndürdüğünden emin olmak için kontrol ettiniz mi? – Tombala

+0

@Tombala Ah bunu düzeltdi, bu özellik ızgara için özellikler listesinde görüntülenmiyor, ancak Load'de kodda manuel olarak ayarlandı, teşekkürler! – Vereonix

cevap

2

AutoGenerateColumns = true ayarlamanız gerekir.

İlgili konular