【发布时间】:2015-07-11 14:54:24
【问题描述】:
每次在TextBox 中输入字符时,我都会尝试检查表中是否存在用户名。这是我的代码:
在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);
它给出了一个错误:
未能启用约束。一行或多行包含违反非空、唯一或外键约束的值。
以防万一,我的表中的用户名字段是唯一的并且不是空的,我尝试只执行查询本身并且它运行良好,因此它不在查询结束处。
有人明白我做错了什么吗?
【问题讨论】:
标签: c# mysql asp.net tableadapter