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

來源:互聯網
上載者:User

今天修改早期的一個項目,運行後,選擇一個查詢的頁面時,提示“未能啟用約束。一行或多行中包含違反非空、唯一或外鍵約束的值。”的異常資訊。

  

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


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

  • DataTable中的欄位屬性與表中的欄位屬性不一致,導致了未能啟用約束。修改方法:找到***.xsd檔案裡與表格修改的對應欄位,點擊該欄位的屬性----最大長度 等於你的資料表的修改欄位後的最大長度 
  • 在.xsd檔案裡找到出問題的那張表,使用Shift鍵配合滑鼠選中全部的列,然後按Delete刪除,然後滑鼠右鍵點擊表頭,然後在菜單中選擇“配置”,然後點擊“完成”按鈕,重建強型別DateTable即可。使用以上方法的前提是,SelectCommand命令裡的SQL語句是類似Select * FROM Table這樣的語句。如果沒有使用萬用字元,那就得再修改下SQL語句了,然後再重建強型別的DataTable。(此方式並沒有用過,在刪除的時候可能會提示錯誤,不能夠刪除,參考附件)

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

      

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.