积极答复者
使用强类型DataSet出现“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值”错误

问题
-
小D使用强类型的DataSet建立一个对表 Board的访问
这个表有 ID Title Content DateTime Hits MasterID 字段
强类型的主查询是 SELECT * FROM Board
但是我又新建了一个查询 SELECT ID, Title FROM Board ORDER BY DataTime DESC 后
在.cs里调用这个方法 总出现 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值 这个错误
使用DataSet的预览数据的功能发现 我虽然在第2个查询中未选择查询 Content Hits等列 但是预览数据的时候还是出现空列
小D怀疑是这里出的问题 但是没有解决方法?
请遇到过此问题的大侠指点一下
谢谢了
异常详细信息: System.Data.ConstraintException: 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。
行 807: this.Adapter.SelectCommand = this.CommandCollection[1];
行 808: Board_DS.BoardDataTable dataTable = new Board_DS.BoardDataTable();
行 809: this.Adapter.Fill(dataTable);
行 810: return dataTable;
答案
-
楼主,你好
看报错信息也许是因为你的数据中出现了null或者外键重复等问题。一行或多行中包含违反非空、唯一或外键约束的值
你看看数据是不是这样。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2009年4月7日 2:00
-
try{this.Adapter.Fill(dataTable);}catch(Exception e){DataRow[] failedRows=dataTable.GetErrors();}
MSMVP VC++- 已标记为答案 KeFang Chen 2009年4月7日 2:00
全部回复
-
楼主,你好
看报错信息也许是因为你的数据中出现了null或者外键重复等问题。一行或多行中包含违反非空、唯一或外键约束的值
你看看数据是不是这样。
Microsoft Online Community Support- 已标记为答案 KeFang Chen 2009年4月7日 2:00
-
try{this.Adapter.Fill(dataTable);}catch(Exception e){DataRow[] failedRows=dataTable.GetErrors();}
MSMVP VC++- 已标记为答案 KeFang Chen 2009年4月7日 2:00