【发布时间】:2021-03-11 22:09:34
【问题描述】:
当我单击 Load_Table 按钮时,我想在 DataGridView 中显示我的数据库中的表,所以我编写了该代码:
private void Load_Table_Click(object sender, EventArgs e)
{
try
{
using (SqlConnection cn = new SqlConnection("Server=ZIKO_RED2486;Database=Students;Integrated Security=true"))
{
if (cn.State == ConnectionState.Open)
cn.Close();
using (SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Student", cn))
{
cn.Open();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
-
当我第一次点击它按预期显示学生表时, 但是第二次点击时DataGridView显示Student 表两次。 也就是说 :
-
看起来 Load_Table 按钮获取学生表的数据 并显示在datagridview的内容上。
-
我想在获取之前删除datagridview的内容 表中的数据以显示一次。但是还是不行。
请帮忙。
【问题讨论】:
-
由于您要存储 DataTable,因此请在再次填充之前将其设为新的。您还可以在同一过程中创建一个 DataTable (
var dt = new DataTable; da.Fill(dt); dataGridView1.DataSource = dt;)。如果您需要与其他控件共享数据,请使用 BindingSource 并将其存储为字段。
标签: c# sql winforms ado.net display