程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> DataTable導致約束未啟用

DataTable導致約束未啟用

編輯:關於SqlServer
 

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

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

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

•DataTable中的字段屬性與表中的字段屬性不一致,導致了未能啟用約束。修改方法:找到***.xsd文件裡與表格修改的對應字段,點擊該字段的屬性----最大長度 等於你的數據表的修改字段後的最大長度

•在.xsd文件裡找到出問題的那張表,使用Shift鍵配合鼠標選中全部的列,然後按Delete刪除,然後鼠標右鍵點擊表頭,然後在菜單中選擇“配置”,然後點擊“完成”按鈕,重新生成強類型DateTable即可。使用以上方法的前提是,SelectCommand命令裡的SQL語句是類似Select * FROM Table這樣的語句。如果沒有使用通配符,那就得再修改下SQL語句了,然後再重新生成強類型的DataTable。(此方式並沒有用過,在刪除的時候可能會提示錯誤,不能夠刪除,見附件)

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

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

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved