我正在使用TableAdapter建立連接並通過我的數據庫表進行查詢。我有這個疑問:無法檢索行值?
SELECT salt FROM users WHERE (username = @usernameOrEmail) OR (email = @usernameOrEmail)
,你可以想像,因爲用戶名和電子郵件字段是唯一的,只能取回1行,該行可以爲空或實際上可以包含具體取決於該usernameOrEmail參數有鹽匹配任何用戶名或電子郵件
我使用此代碼來調用查詢,並通過傳遞參數:
public void checkEmailOrUsername(string emailOrUsername)
{
DataTable userDataTable = userInfoTableAdapters.getUserSalt(emailOrUsername);
DataRow userDataRow = userDataTable.Rows[0];
string saltValue = userDataRow["salt"].ToString();
}
它完美,當參數沒有在表中匹配一個用戶名或電子郵件然而破壞時的電子郵件或用戶名呢火柴。它給出了一個錯誤在這條線:
DataTable userDataTable = userInfoTableAdapters.getUserSalt(emailOrUsername);
這是錯誤:
An exception of type 'System.Data.ConstraintException' occurred in System.Data.dll but was not handled in user code
Additional information: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
對於TA中沒有設置爲空的列,是否返回空值? – DavidG
SALT列不爲空@DavidG – mogorilla
您可以發佈您的GetUserSalt方法嗎?可能你的填充DT的方法有錯誤,等等。 – Dylan