一个按钮的事件:
{
My_dataSet.Tables["my_table"].Rows[0].Delete(); //删除第一条记录 My_dataaAdapter.Update(My_dataSet, "my_table"); //update
}单击第一次正常,第二次正常第三次或者第四次总会出现异常: 违反并发性:deletecomand影响了与其中的1条记录中的0条。
什么原因?
题外话:感觉c#的数据库部分复杂繁琐,又不容易理解。:)个人感觉。
{
My_dataSet.Tables["my_table"].Rows[0].Delete(); //删除第一条记录 My_dataaAdapter.Update(My_dataSet, "my_table"); //update
}单击第一次正常,第二次正常第三次或者第四次总会出现异常: 违反并发性:deletecomand影响了与其中的1条记录中的0条。
什么原因?
题外话:感觉c#的数据库部分复杂繁琐,又不容易理解。:)个人感觉。
解决方案 »
- Winfrom:当线程有未处理异常的时候如果避免整个应用程序关闭?
- 给服务传递参数
- 怎么加快c#程序的启动速度
- 再遇表单提交问题,请各位帮忙解释一下为什么会有这样的问题。大家先看代码
- C# sendmessage实现复制粘贴的问题
- 何时使用事件?好像感觉没啥必要用到!
- 数据库连接超时问题
- B/S自定义性可配置性程序,请大家说说高见,有者有分。
- c# winform 窗体分屏显示问题 在线结贴。着急!!!!
- 用C#写C/S好吗(假设机器配置够用的情况下)?
- 关于会员推广会员时,是记录IP好,还是记录主机名好?
- 我有一个问题要提问,有截图才能说明白一点,自己截取了一张.png的图但不知道要怎样贴上来?
也就是说读取到脏数据导致的结果。 dataset在更新之后没有做AcceptChange
在update()方法完成以后;重新加载一下数据就可以了!
再更新的时候就不会出错了!
datagridview上面显示删除了,但数据源并没删除,打开后纪录仍存在。
还有个现象:一个增加记录的按钮:mydatatable.rows.add(newrow);如果加上AcceptChanges(),再update();打开数据源,记录并没增加。什么原因?
DataRow dr = ds.Tables["ado"].NewRow();
ds.Tables["ado"].Rows.Add(dr);
cmd.CommandText = sqlinsert;
adapter = new SqlDataAdapter(sqlinsert,con);
adapter.InsertCommand = cmd;
adapter.Update(ds,"ado");
用adapter删除数据的关键语句:
ds.Tables["Dname"].Rows[index].Delete(); //index是选中的要删除的行索引
adapter.DeleteCommand = cmd;
adapter.Update(ds, "Dname");
我测试过,没问题的。
string w = "delete from tb1" + " where idt=@idt_v";
dtAdap.DeleteCommand = new SQLiteCommand(w,conn_m); SQLiteParameter param_m = null;
param_m = dtAdap.DeleteCommand.Parameters.Add ("@idt_v",DbType.Int64);
param_m.SourceColumn = "idt";
param_m.SourceVersion = DataRowVersion.Current;
上面的问题仍旧存在,我现在头都大了,这是数据库操作最基本的东西啊。
select语句应该没错吧,最简单的:dtAdap = new SQLiteDataAdapter("select * from treetb", conn_m);
{
My_dataSet.Tables["my_table"].Rows[0].Delete(); //删除第一条记录 My_dataaAdapter.Update(My_dataSet, "my_table"); //update
} 本身并没有问题。
也不牵涉acceptechanges(),update()先后,甚至全局adapter。
问题出在我的数据库的记录上了。
更换数据记录后,正常了。
但从众位同学的讨论来看,c#做数据库,不是一般的复杂繁琐阿。