【发布时间】:2018-07-09 17:15:50
【问题描述】:
我正在使用 c# 处理一个简单的应用程序 我不想做的是,当我将 SQL 数据库中的数据检索到 Datagrid 中时,我希望通过选择它们然后单击按钮来删除一些行。
我用来检索数据的代码如下所示:
SqlConnection conn = new SqlConnection("Server=MEO-PC;Database= autoser; Integrated Security = true");
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * From evidenc", conn);
DataTable dt = new DataTable("dtList");
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dtg.ItemsSource = dt.DefaultView;
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapt.Fill(ds);
conn.Close();
我尝试删除特定行的代码是:
if (dtg.SelectedIndex >= 0)
{
dtg.Items.RemoveAt(dtg.SelectedIndex);
}
我得到的错误是:使用 ItemsSource 时操作无效。改为使用 ItemsControl.ItemsSource 访问和修改元素。
我不知道问题出在哪里,因为我是编程新手。谢谢大家
【问题讨论】:
-
您正在从数据表中加载 DG。表中的行号与 DG 中的行号相同。因此,从 DataTable 中删除该项目。然后使用以下刷新 DG: dtg.ItemSource = null; dtg.ItemSource = dt.DefaultView;