我正在尝试将DateTable绑定到已经使用VS中的Designer设计的列的Datagridview。 DataTable的源代码是sql数据库。我试图使用以下代码执行此操作,该代码仅在datagridview中添加空行。我还使用DataTable中列的名称更新DGV列的DataPropertyName属性
SqlConnection CN = new SqlConnection(mysql.CON.ConnectionString);
dataGridView1.AutoGenerateColumns = false;
DataTable dt = new DataTable();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
dt.Columns.Add(col.Name);
col.DataPropertyName = col.Name;
}
SqlDataAdapter sda = new SqlDataAdapter("select id,name,age,notes from test where id = '" + txtID.Text + "'", CN);
sda.Fill(dt);
dataGridView1.DataSource = dt;
请大家帮忙知道为什么用数据显示行是空的
答案 0 :(得分:0)
我认为您的 sda.Fill(dt); 是错误的,因为根据SqlDataAdapter上的参考,您可能需要填写 DataSet 否 DataTable 。查看并了解有关如何从数据库获取数据的更多信息。尝试任何教程,而不是你在stackoverflow上问。
http://msdn.microsoft.com/en-us/library/ms171920.aspx
http://msdn.microsoft.com/cs-CZ/library/system.data.sqlclient.sqldataadapter.aspx
答案 1 :(得分:0)
稍微修改你的代码:
SqlConnection CN = new SqlConnection(mysql.CON.ConnectionString);
dataGridView1.AutoGenerateColumns = false;
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter("select id,name,age,notes from test where id = '" + txtID.Text + "'", CN);
sda.Fill(dt);
dataGridView1.DataSource = dt;
for (int i = 0; i<dataGridView1.Columns.Count;i++)
{
dataGridView1.Columns[i].DataPropertyName = SelectionChangeCommitted.Columns[i].ColumnName;
}