我是C#和数据库的新手。我创建了一个数据库,我在其中添加了一个人的数据。实际上,是来自创建帐户的人的数据。我检查了电子邮件是否有电子邮件结构,我检查密码是否与重新输入密码相同。这里有代码:
if (Pass.Text != Rpass.Text)
{
MessageBox.Show("Password don't match!");
return;
}
string emailCheck = Email.Text;
bool valid = false;
int count_dot = 0;
for (int i = 0; i < emailCheck.Length; i++)
if (emailCheck[i] == '@') valid = true;
else if (emailCheck[i] == '.') count_dot++;
if (valid == false || count_dot == 0)
{
MessageBox.Show("Invalid email!");
return;
}
con = new SqlConnection(@"Data Source=MARIA-PC;Initial Catalog=Account;Integrated Security=True");
con.Open();
cmd = new SqlCommand("INSERT into [dbo].[Cont1] (Username,Password,First_name,Last_name,Birth_year,Email,Work_type) VALUES (@Username,@Password,@First_name,@Last_name,@Birth_year,@Email,@Work_type)", con);
cmd.Parameters.Add("@Username", Username.Text);
cmd.Parameters.Add("@Password", Password.Text);
cmd.Parameters.Add("@First_name", First_name.Text);
cmd.Parameters.Add("@Last_name", Last_name.Text);
cmd.Parameters.Add("@Birth_year", DateTime.Parse(Birth_year.Text));
cmd.Parameters.Add("@Email", Email.Text);
cmd.Parameters.Add("@Work_type", Work_tpye.SelectedItem.ToString());
cmd.ExecuteNonQuery();
con.Close();
所以,我想要做的是在添加数据库之前检查,如果我已经在数据库中有用户名。我知道我必须做什么,但我不知道该怎么办。
答案 0 :(得分:1)
查看Merge命令。网上还有许多其他教程。
答案 1 :(得分:0)
更新您的sql命令文本并使其更智能。对于前)
declare @p_user_name varchar(10) = 'test'
IF(NOT EXISTS(SELECT 1 FROM Users Where userName = @p_user_name))
BEGIN
INSERT INTO Users(name)
VALUES (@p_user_name)
END
答案 2 :(得分:0)
您有两种选择:
1 - 获取用户名等于用户名称的寄存器计数:
Query: "SELECT COUNT(*) FROM [dbo].[Cont1] WHERE Username=@Username"
如果结果大于0,则表示用户已经存在。
2 - 在Username字段上创建一个唯一索引(这是推荐的方法)并尝试插入,如果已经使用了用户名,则会导致重复密钥异常。