我需要从Gridcontrol
隐藏行,而不是从数据源中删除数据。
例如,当用户删除行时,将运行查询,该查询会将0值插入到我的表中,并显示包含值不为null的行的表。
我尝试使用下面的代码。但是我似乎无法运行它。
del = 1;
ColumnView view = gridControl1.FocusedView as ColumnView;
view.FocusedRowHandle = user_typeTableAdapter1.Insert_del(del);
view.SelectRow(view.FocusedRowHandle);
发生错误,尽管我插入了自定义查询,但我无法仅将del放在表适配器中。
这是正在发生的主要问题,在这件事上我没有太多帮助。
答案 0 :(得分:0)
嗨,这个问题的答案如下。
实际上,我是在插入值而不是更新它。 我要做的就是运行查询并在调用delete时执行它。
请注意,这是为了演示在Devexpress中从gridView删除的数据
private void Delete(){
try
{
conn.Open();
ColumnView view = gridControl1.FocusedView as ColumnView;
int id = Convert.ToInt32(gridView1.GetDataRow(view.FocusedRowHandle)["product_id"]);
string query = "UPDATE product SET del =@product_del where product_id= @id";
int del = 1;
SqlCommand sc = new SqlCommand(query, conn);
sc.Parameters.AddWithValue("@product_del", del);
sc.Parameters.AddWithValue("@id", id);
sc.ExecuteScalar();
sc.Dispose();
conn.Close();
}
}
现在为gridView零件
private void gridControl1_ProcessGridKey(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Delete)
{
DialogResult dialogResult = MessageBox.Show("Are you sure you want to delete this row, it will permanently delete the data", "Delete?", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
ColumnView view = gridControl1.FocusedView as ColumnView;
view.CloseEditor();
{
Delete();
view.UpdateCurrentRow();
product_viewTableAdapter1.Fill(allDataSets1.Product_view);
}
}
}
}
现在,每次用户删除行时,它将被隐藏而不是被删除。
实际上,这是用户的要求。所以我必须实现它。