VS中提示:未能啟用約束。一行或多行中包含違反非空、唯一或外鍵約束的值。


今天運行項目,提示“未能啟用約束。一行或多行中包含違反非空、唯一或外鍵約束的值。”的異常信息。

 

在網上找了查了一些原因:http://www.cnblogs.com/muzihai1988/archive/2011/05/04/2036502.html

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

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

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

  附件:在刪除可能會提示以下錯誤:

      

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM