2016-07-27 65 views
1

我生成asp.net應用程序,爲db我使用TableAdapter。 選擇查詢TableAdapter異常與連接

SELECT 
    U.empID, 
    U.firstName, 
    U.lastName, 
    R.name AS Role 
FROM 
    USER_T AS U 
INNER JOIN USER_ROLES_T AS UR ON U.empID = UR.empID 
INNER JOIN ROLES_T AS R ON UR.roleID = R.typeID 

empId與約束primary key。員工具有許多角色屬性,它命名爲角色。

當我從數據庫中的用戶數據進行請求:

UsersTableAdapter usersTableAdapter = new UsersTableAdapter(); 
DataBase.UsersDataTable users = usersTableAdapter.GetUsers(); 

我得到以下異常:

Controllers.UI.Login.LoginController | System.Data.ConstraintException: 未能

啓用約束。一行或多行包含違反 非空,唯一或外鍵約束的值。

如果我執行請求的選擇請求與任何管理程序得到它

28 Roman Ivanov Admin 
    28 Roman Ivanov Developer 

我明白了,這是因爲中primary key empId,怎麼能這個問題得到解決?我如何從適配器中刪除主鍵?

+0

[無法啓用約束條件。一行或多行包含違反非空,唯一或外鍵約束的值](http://stackoverflow.com/questions/7026566/failed-to-enable-constraints-one-or-more-rows-contain- values-violation-non-null) –

+0

作爲總和,你想要的結果是什麼? –

回答

2

enter image description here

開放UsersTableAdapter設計,像上面的圖像,然後右鍵單擊它Visual Studio和刪除鍵,然後保存,它會很好地工作。

+0

但我不能這樣做,主鍵是在客戶的數據庫中,我沒有任何選項來執行刪除 – flybox

+0

不,不會從數據庫中刪除主鍵它只會從適配器 –

+0

THX!我找到了! – flybox