我正在为论文做一个简单的登录页面,我已经完成了字符长度和密码不匹配验证。我的问题是我如何测试如果给定的用户名已存在于我的数据库 ....我正在使用C#进行编码,并将SQL管理工作室R2用于我的数据库......
private void add_Click(object sender, EventArgs e)
{
string UserName = textBox1.Text;
string Password = maskedTextBox1.Text;
if (Password.Length <= MiN_LENGHT && UserName.Length <= MiN_LENGHT)
{
errorProvider1.SetError(textBox1, "User name must be at least 8 character");
errorProvider2.SetError(maskedTextBox1, @"Password must be at least 8 character");
maskedTextBox1.Clear();
maskedTextBox2.Clear();
}
else if (maskedTextBox1.Text != maskedTextBox2.Text)
{
errorProvider1.SetError(maskedTextBox2, "Passwords don't match");
maskedTextBox1.Clear();
maskedTextBox2.Clear();
}
else if (textBox1.Text == "" || maskedTextBox1.Text == "" ||
maskedTextBox2.Text == "")
{
MessageBox.Show("Please fill up the required records", "Information",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
x.da.InsertCommand = new SqlCommand(@"Insert into PlayerList
VALUES(@uname,@pw,@repw)", x.cs);
x.da.InsertCommand.Parameters.Add("@uname", SqlDbType.NVarChar).Value =
textBox1.Text;
x.da.InsertCommand.Parameters.Add("@pw", SqlDbType.NVarChar).Value =
maskedTextBox1.Text;
x.da.InsertCommand.Parameters.Add("@repw", SqlDbType.NVarChar).Value =
maskedTextBox2.Text;
x.cs.Open();
x.da.InsertCommand.ExecuteNonQuery();
MessageBox.Show("Record Added", "Information", MessageBoxButtons.OK,
MessageBoxIcon.Information);
button3.Enabled = true;
x.da.SelectCommand = new SqlCommand( @"Select PlayerCode, uname from
PlayerList", x.cs);
x.ds.Clear();
x.da.Fill(x.ds);
dataGridView1.DataSource = x.ds.Tables[0];
x.cs.Close();
}
}
希望你能帮忙......
答案 0 :(得分:2)
您可以在数据库的用户名字段中添加UNIQUE CONSTRAINT或INDEX并捕获异常,也可以事先搜索它。我推荐第一种替代方案,因为它避免了竞争条件,但这不应该妨碍你进行搜索。
答案 1 :(得分:1)
在存储新用户之前,首先检查数据库中是否已存在该用户名,如果该用户不存在,则保存该记录。
如果该用户名确实存在,则跳过保存,并向用户显示他或她的用户名已被使用的友好消息
答案 2 :(得分:0)
您确定要在登录页面中进行验证吗?我认为这个验证是注册页面。
您可以通过两种方式进行此验证
1 - &GT;用户输入用户名后进行ajax调用,如果用户名已经存在,则显示重复消息。(用户将提供密码,这意味着用户时间将被保存)。
2 - &GT;在第二种方法中,您可以在服务器端完全进行验证。获取用户名并将其与现有用户名进行比较,并相应地显示消息。
答案 3 :(得分:-1)
关于用户名文本框的textchanged事件,您只需从数据库查询
select username from user_mst where username='"+textusernm.text+"';
如果有,那么jst显示错误消息并禁用保存按钮 &安培;如果不是jst启用保存按钮并保存