【发布时间】:2021-03-20 18:20:37
【问题描述】:
我正在尝试检查用户名是否已在 C# 数据库中使用,它给了我这个错误
SqlConnection cn = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\admin\Desktop\241 Project sem 1 2020-2021\Online Banking - ITIS 241 project group 9\UobBankDatabase.mdf; Integrated Security = True; Connect Timeout = 30");
cn.Open();
SqlCommand cmd = new SqlCommand("select * from LoginTable where user_name='" + textBox1.Text + "'", cn);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
dr.Close();
MessageBox.Show("Username Already exist please try another ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
dr.Close();
}
是的,我是新手
【问题讨论】:
-
您可能在错误的数据库中。在连接字符串中包含初始目录。请检查表名(LoginTable)
-
不要连接输入 - 它必须是
"select * from LoginTable where user_name=@userName"或类似的,并添加一个名为@userName的参数,其值来自@987654326 @。或者使用像 Dapper 这样的工具可以让这变得更容易。 “Online_Banking”这个名字在 SQLi 旁边是可怕的,老实说。 -
best example 和有趣的 ;)
-
@nilsK SQLi 和 MITM 是非常不同的东西;这里只有 SQLi 相关
-
@MarcGravell 好的,谢谢。你是绝对正确的。