C#中的问题 在datagridview里面筛选数据后,再删除数据中的一行后刷新列表,怎么使列表是筛选后的刷新数据? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用代码实现哈,是个按钮的事件。datagridview 是只读和不允许用户添加 我做的重新绑定数据后,不是筛选后的刷新数据,是Load的数据怎么办? 1,数据存入数据集DataSet中,DGV绑定的实际是内存中的表。你从数据视图中删除行,实际操作的是内存中的数据。2,如果你删除了数据,但是没有更新到数据库,那么重新绑定数据源后还是不会显示删除的。 不太明白你的意思,你想删除数据后,将操作更新到数据库,然后即使重新运行程序也显示删除后的数据吗?提示:使用SqlCommandBuilder更新数据库,然后重新绑定即可。 string sql = string.Format("delete from MobileInfo where MobileID='{0}'", Convert.ToString(dgvShuJu.SelectedRows[0].Cells["MobileID"].Value)); try { SqlCommand comm = new SqlCommand(sql, DBHelper.con); DBHelper.con.Open(); int a = comm.ExecuteNonQuery(); if (a == 1) { MessageBox.Show("删除成功!"); set.Tables["MobileInfo"].Clear(); frmMobileInfo_Load(sender, e); //load是查全部数据的,这里改成什么才是查筛选后的数据 } else { MessageBox.Show("删除失败"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { DBHelper.con.Close(); } frmMobileInfo_Load(sender, e); //load是查全部数据的,这里改成什么才是查筛选后的数据 }自己写个查询方法,将查询语句传入方法,调用的时候只要把sql语句传入即可,然后绑定数据就ok了,如写个 private void Select(string MYSQL) {}load时候string sql = string.Format("delete from MobileInfo where MobileID='{0}'", Convert.ToString(dgvShuJu.SelectedRows[0].Cells["MobileID"].Value));Select(sql)就行了,删除后在调用一下,该下查询语句。 比较直白的方法就是自己控制查询数据填充DataGridView。相当于自己实现一套MVC。我估计你是额外做了些过滤,比如基于某些关键字,等等。我建议这些过滤条件做封装,任何操作后更新过滤条件,重新加载数据更新DataGridView winform跟webform的机制截然不同,所以它在更新时用不着“刷新、重新绑定”这类概念。比如datagridview自身插入、更新、删除行,或者它绑定的ObservableCollection<T>数据中有个别行改变了,它就会重新绘制改变的行。 关于如何映射被监听端口的问题 同分区下的文件重命名速度很慢 C#里有专门用来读取ini文件的类吗? 小弟不知道这个该怎么处理,请高手指点,万分感谢(急急急 !!) 关于类型转换的小总结! 怎样引用第三方的dll 学ASP.NET前应具备的基础知识??100分! 我有个系统计划任务启动报错,不能执行。 C# 动态仿真效果实现 该从什么技术着手? 菜问题。没法第一次接触这些东东!!!!!! 关于线程池管理 winform动态连接数据库
datagridview 是只读和不允许用户添加
怎么办?
不太明白你的意思,你想删除数据后,将操作更新到数据库,然后即使重新运行程序也显示删除后的数据吗?提示:使用SqlCommandBuilder更新数据库,然后重新绑定即可。
try
{
SqlCommand comm = new SqlCommand(sql, DBHelper.con);
DBHelper.con.Open();
int a = comm.ExecuteNonQuery();
if (a == 1)
{
MessageBox.Show("删除成功!");
set.Tables["MobileInfo"].Clear();
frmMobileInfo_Load(sender, e);
//load是查全部数据的,这里改成什么才是查筛选后的数据
}
else
{
MessageBox.Show("删除失败");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelper.con.Close();
}
//load是查全部数据的,这里改成什么才是查筛选后的数据
}自己写个查询方法,将查询语句传入方法,
调用的时候只要把sql语句传入即可,然后绑定数据就ok了,如写个
private void Select(string MYSQL)
{}load时候
string sql = string.Format("delete from MobileInfo where MobileID='{0}'", Convert.ToString(dgvShuJu.SelectedRows[0].Cells["MobileID"].Value));
Select(sql)就行了,删除后在调用一下,该下查询语句。
相当于自己实现一套MVC。我估计你是额外做了些过滤,比如基于某些关键字,等等。我建议这些过滤条件做封装,任何操作后更新过滤条件,重新加载数据更新DataGridView