为什么我用DataSet绑定DataGridView删除数据显示成功,程序重新运行后数据还在?
发布网友
发布时间:2022-05-24 20:43
我来回答
共4个回答
热心网友
时间:2023-10-31 22:10
有两种情况:
第一,数据确实被你删除了,数据库的数据没了,但网页上还是显示有数据,这是因为你没有再次绑定删除以后新的数据,你只要再你删除的事件最后重新调用你绑定时候的方法就可以.
第二,表格里的数据显示是没有了,打开还有数据.你没有直接对数据库进行操作,而是对DataSet里的表格进行了操作,dataset是吧数据库的数据读到了内存中去进行操作的.解决办法就是直接对数据库进行删除操作.
热心网友
时间:2023-10-31 22:11
DataTable dt = ds.Tables["jz"];
sda.FillSchema(dt, SchemaType.Mapped);
DataRow dr = dt.Rows.Find(dateTimePicker1.Text);
int i = dataGridView1.CurrentCell.RowIndex;
dt.Rows.RemoveAt(i);
SqlCommandBuilder cmdbuider = new SqlCommandBuilder(sda);
sda.Update(dt);
代码改为:DataTable dt = ds.Tables["jz"];
dt.DefaultView.Sort = "你表的主键列名";
int n = dt.DefaultView.Find(dateTimePicker1.Text);
dt.Rows[n].Delete();
SqlCommandBuilder cmdbuider = new SqlCommandBuilder(sda);
sda.Update(dt);
你试试可不可以,你的主键是字符性质得吗?如果是int类型,还得要转换.行的话给我加飞。你的问题出在,根本就没有找到要删除的行。
热心网友
时间:2023-10-31 22:11
ds.AcceptChanges();
ds.Tables[0].AcceptChanges();
ds.Tables[0].Rows[0].AcceptChanges();
在DataSet,DataTable,DataRow做了Delete,Update,Insert等操作后。
根据你所做的操作对象使用AcceptChanges()函数,提交你的修改。这样才会在数据库里提交你所做的修改。
热心网友
时间:2023-10-31 22:12
因为你最后没有关闭连接,你不关闭,默认是不保存的。
conn.Close();