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;
}
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
@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