我試圖在每次在TextBox
中輸入字符時檢查用戶名是否存在於我的表中。這裏是我的代碼:無法使用TableAdapter啓用約束
內register.aspx.cs
文件我對TextBox
一個TextChanged
事件:
protected void username_txt_TextChanged(object sender, EventArgs e)
{
string check = authentication.checkUsername(username_txt.Text);
if(check == "false")
{
username_lbl.Text = "Available";
}
else
{
username_lbl.Text = "Not Available";
}
}
它會調用這個方法:
public static string checkUsername(string Username)
{
userInfoTableAdapters.usersTableAdapter userInfoTableAdapters = new userInfoTableAdapters.usersTableAdapter();
DataTable userDataTable = userInfoTableAdapters.checkUsername(Username);
DataRow row = userDataTable.Rows[0];
int rowValue = System.Convert.ToInt16(row["Users"]);
if (rowValue == 0)
{
return "false";
}
else
{
return "true";
}
}
正在執行的查詢是:
SELECT COUNT(username) AS Users FROM users WHERE (username = @Username)
出於某種原因,它不斷破壞在這條線:
DataTable userDataTable = userInfoTableAdapters.checkUsername(Username);
它提供了一個錯誤,指出:
未能啓用約束。一行或多行包含違反非空,唯一或外鍵約束的值。
只是incase,我的表中的用戶名字段是唯一的,而不是空的,我試過只是執行查詢本身,它完美的作品,所以它不在查詢結束。
有沒有人明白我在做什麼錯了?
沒有人知道嗎? – mogorilla