未能啓用約束。一行或多行中包含違反非空、惟一或外鍵約束的值。

來源:http://www.cnblogs.com/JuneZhang/archive/2013/01/10/2853981.htmlhtml

今天運行項目,提示「未能啓用約束。一行或多行中包含違反非空、惟一或外鍵約束的值。」的異常信息。數據庫

 

在網上找了查了一些緣由:http://www.cnblogs.com/muzihai1988/archive/2011/05/04/2036502.htmlhtm

緣由分析:強類型的DataTable和SQL語句查詢出的結果不匹配。 簡單說就是強類型的DataTable比SQL語句查詢出來的結果集要多一些數據列或這屬性不對應。blog

針對所提示的異常信息檢查了所用表的惟1、非空、外鍵約束,並未發現異常狀況。所以上網查詢了有關的資料。所提供的方法有如下幾種:配置

  • DataTable中的字段屬性與表中的字段屬性不一致,致使了未能啓用約束。修改方法:找到***.xsd文件裏與表格修改的對應字段,點擊該字段的屬性----最大長度 等於你的數據表的修改字段後的最大長度   我想了一下,昨天確實修改過一個字段的長度,而後在xsd中找到對應的自動,把長度改成新的長度,而後錯誤就沒出現了。
  • 在.xsd 文件裏找到出問題的那張表,使用Shift鍵配合鼠標選中所有的列,而後按Delete刪除,而後鼠標右鍵點擊表頭,而後在菜單中選擇「配置」,而後點擊 「完成」按鈕,從新生成強類型DateTable便可。使用以上方法的前提是,SelectCommand命令裏的SQL語句是相似Select * FROM Table這樣的語句。若是沒有使用通配符,那就得再修改下SQL語句了,而後再從新生成強類型的DataTable。(此方式並無用過,在刪除的時候可能會提示錯誤,不可以刪除,參考附件)

  附件:在刪除可能會提示如下錯誤:方法

      

   這說明是數據庫的鏈接有問題,解決方法:重啓VS,先不要打開項目,在tools中選擇connect to database鏈接到數據庫,再打開項目便可。im

相關文章
相關標籤/搜索