ADO.Net问题---DataAdapter Update 违反并发性

1,        在多个线程中同时用Adapter更新一个DataTable:

     tbReferTableAdapter tbAdapter = new tbReferTableAdapter();                    
     tbAdapter.Update(dataSetRefer.tbRefer);                                 //更新到数据库,tbRefer是datatable中的一张表。

遇到如下错误: throws DBConcurrencyException 违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。 

        在我写的程序中,是因为当用DataSet来更新数据库时,若DataSet对应数据库中数据被其他线程改变,引发DBConcurrencyException.

解决办法如下:

     tbReferTableAdapter tbAdapter = new tbReferTableAdapter();
     tbAdapter.Update(dataSetRefer.tbRefer);                              //更新到数据库,tbRefer是datatable中的一张表 
     tbAdapter.Fill(dataSetRefer.tbRefer);                                //把内存中的数据和数据库保持一致,解决问题!

2,在把DataRow[] (dr)转换成Datatable(dt)时,出现“ 该行已经属于另一个表 ”错误!


for(int i=0;i<dr.Length;i++)
{
     //将数组元素加入表...
      dt.Rows.Add(dr[i]);//出错提示为:该行已经属于另一个表
}

解决办法如下:

for(int i=0;i<dr.Length;i++)
{
	//将数组元素加入表...
	dt.Rows.Add(dr[i].ItemArray);//解决问题!
}解决方法




已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页