用DATATABLE更新表的问题

wch_212 2011-07-13 12:29:04
我用DATATABLE做容器存放数据

用SqlDataAdapter.Update更新 DATATABLE 修改过的数据。

总提示我

‘违反了 PRIMARY KEY 约束 不能在对象 中插入重复键’


//定义
public int UpdateData(string strCommand, DataTable dt)
{
try
{
int num = 0;
SqlDataAdapter adapter = new SqlDataAdapter(strCommand, new SqlConnection(this.DB_String));
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
num += adapter.Update(dt);
dt.AcceptChanges();
return num;
}
catch (Exception)
{
return -1;
}
}
//调用
DataTable dt=new DataTable();
//查询得到DT里的内容
//修改DT里的内容
this.UpdateData("select * from t1",dt);

...全文
156 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhuad 2011-07-13
  • 打赏
  • 举报
回复
插入了重复的主键,先查询数据库是否有该主键的记录再增加。
挨踢直男 2011-07-13
  • 打赏
  • 举报
回复
说明你在不能重复的字段上插入了重复的值啊
xuexiaodong2009 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xuzysun 的回复:]

adapter.UpdateCommand = builder .GetUpdateCommand();//更新
--操作数据库---
adapter.Update(dt); //更新ds到数据库
[/Quote]Update,看看你Update的SQL怎么写的
xuzysun 2011-07-13
  • 打赏
  • 举报
回复
adapter.UpdateCommand = builder .GetUpdateCommand();//更新
--操作数据库---
adapter.Update(dt); //更新ds到数据库
wch_212 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aspwebchh 的回复:]

说明你在不能重复的字段上插入了重复的值啊
[/Quote]

请问怎么改成更新那?
wch_212 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xhuad 的回复:]

插入了重复的主键,先查询数据库是否有该主键的记录再增加。
[/Quote]

不是想增加,是想更新,但是不知道是哪错了,就被视为插入了。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧