【发布时间】:2011-11-19 12:47:08
【问题描述】:
我正在使用DataAdapter 从带有主键的表中填充DataSet。
如果我将主键列中的值更改为另一行中已经存在的值,我不会收到主键冲突错误。
如果我在更改行之后调用DataSet.AcceptChanges(),使得现在有重复的主键值,仍然没有主键冲突错误。
这是为什么?
string sqlcommand = "select * from itemmaster";//itemaster contains id field which is primary key//
SqlConnection cn = new SqlConnection(connstring);
cn.Open();
SqlCommand cmd = new SqlCommand(sqlcommand, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ds.Tables[0].Rows[4]["ID"] = "2"; // value 2 already exists in another row
【问题讨论】:
-
出于好奇,您为什么要使用
DataSets 而不是 ORM 进行开发? -
另外,如果你显示代码,你会得到更好的答案。创建一个显示问题的小示例,然后在此处发布示例。
-
添加了一些示例代码以使事情变得清晰