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

gameboyerik001 2009-03-31 02:50:41
小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怀疑是这里出的问题 但是没有解决方法?

请遇到过此问题的大侠指点一下

谢谢了
...全文
505 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
whymesocoolyes 2012-02-23
  • 打赏
  • 举报
回复
只要把原来的DataSet删除掉,重新添加查询就可以解决。我刚刚就是这样搞得
gameboyerik001 2009-04-01
  • 打赏
  • 举报
回复
没有办法了吗
gameboyerik001 2009-04-01
  • 打赏
  • 举报
回复
结帖了
gameboyerik001 2009-04-01
  • 打赏
  • 举报
回复
建了一个全新的dataset 问题就没了头晕ing
koukoujiayi 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gameboyerik001 的回复:]

不是用的SQL语句 是强类型的dataset
[/Quote]
使用强类型的dataset这种错误的确会发生!
原因好象是多方面的,
1.在创建DataSet中的Adapter时,第一个方法即GetData和后续创建的方法要保持一致,
也就是说select语句的Where前要保持一致,
2.在创建DataSet中的Adapter时,也有主键,一般要和数据表保持一致!!
3.有时把原来的删了再重新件一下,也就好了!
等等吧!!
gameboyerik001 2009-03-31
  • 打赏
  • 举报
回复
我已经把该表除了主键外的所有约束全取消了 还是不行

[ConstraintException: 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。]
gameboyerik001 2009-03-31
  • 打赏
  • 举报
回复
异常详细信息: 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;


gameboyerik001 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 Teng_s2000 的回复:]
到SQL Server中执行这条SQL语句看看报错吗?

DataSet就相当于一个数据库的缓存,一些数据库对象和SQL一样
[/Quote]

不是用的SQL语句 是强类型的dataset
Teng_s2000 2009-03-31
  • 打赏
  • 举报
回复
到SQL Server中执行这条SQL语句看看报错吗?

DataSet就相当于一个数据库的缓存,一些数据库对象和SQL一样
xmq120 2009-03-31
  • 打赏
  • 举报
回复
显然是你数据库里面的外键出现问题了 建议你先从数据库里面把 约束 外键全部去掉测试下
cpp2017 2009-03-31
  • 打赏
  • 举报
回复
因为强类型的DataSet是有与你的数据库一样的约束,如果你的Content Hits等列有非空约束的话,那么你填充的时候不选这些例就会有问题,

要么你选上,要么你填充一个非强类型的DataSet

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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