• 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。


    今天修改早期的一个项目,运行后,选择一个查询的页面时,提示“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。”的异常信息。


      

      原因分析:强类型的DataTable和SQL语句查询出的结果不匹配。 简单说就是强类型的DataTable比SQL语句查询出来的结果集要多一些数据列或这属性不对应。


       针对所提示的异常信息检查了所用表的唯一、非空、外键约束,并未发现异常情况。因此上网查询了有关的资料。所提供的方法有以下几种:

    • DataTable中的字段属性与表中的字段属性不一致,导致了未能启用约束。修改方法:找到***.xsd文件里与表格修改的对应字段,点击该字段的属性----最大长度 等于你的数据表的修改字段后的最大长度 
    • 在.xsd文件里找到出问题的那张表,使用Shift键配合鼠标选中全部的列,然后按Delete删除,然后鼠标右键点击表头,然后在菜单中选择“配置”,然后点击“完成”按钮,重新生成强类型DateTable即可。使用以上方法的前提是,SelectCommand命令里的SQL语句是类似Select * FROM Table这样的语句。如果没有使用通配符,那就得再修改下SQL语句了,然后再重新生成强类型的DataTable。(此方式并没有用过,在删除的时候可能会提示错误,不能够删除,参考附件

      附件:在删除可能会提示以下错误:

          

       这说明是数据库的连接有问题,解决方法:重启VS,先不要打开项目,在tools中选择connect to database连接到数据库,再打开项目即可。

     


  • 相关阅读:
    太白老师 day06 编码 encode decode
    太白老师day6 1.代码块 2.is==id 3.小数据池
    MySQL 基本语法(1.表字段操作,2表记录管理 3.运算符管理4.SQL查询 5.约束6.索引
    List 接口常用子类及其特点
    Java 集合框架
    Java 常用工具类之基本对象包装类
    Java 常用工具类之 String 类
    Java 多线程间通信
    Java 多线程通信之多生产者/多消费者
    Java 之多线程通信(等待/唤醒)
  • 原文地址:https://www.cnblogs.com/muzihai1988/p/2036502.html
Copyright © 2020-2023  润新知