我有登记表。在这种情况下,它只包含USERNAME和PASSWORD。
当我在SQL Server中创建表时,我将两列都放在NOT NULL上但是当我尝试注册而不输入用户名或密码时没有错误,我的表单'注册'新用户例如没有密码(如果我没有输入密码)。
这是我的代码,所以如果有人可以帮我解决这个问题,也可以说是否有其他错误/用代码写得不好,因为我是所有这些的新手。我认为我在SQL注入问题方面做得很好,但你永远都不知道。非常感谢您的回复。
private void button1_Click(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection("Data Source=HOME-PC;Initial Catalog=TestDB1;Integrated Security=True");
try
{
cn.Open();
String query = "INSERT INTO dbo.users (uUsername, uPassword) VALUES (@uUsername, @uPassword)";
SqlCommand command = new SqlCommand(query, cn);
command.Parameters.AddWithValue("@uUsername", textBox1.Text);
command.Parameters.AddWithValue("@uPassword", textBox2.Text);
command.ExecuteNonQuery();
MessageBox.Show("OK");
this.usersTableAdapter.Fill(this.testDB1DataSet.users);
}
catch (Exception ex)
{
MessageBox.Show("Error");
}
finally
{
cn.Close();
}
}
答案 0 :(得分:0)
如果我已正确理解这一点,那么您有一个用C#编写的应用程序,它与SQL Server后端进行交互。
您应该能够在C#代码中添加一个检查,以便在单击按钮时检查文本框是否为空。我的C#非常生疏,但可以这样做:
if (string.IsNullOrWhiteSpace(textBox1.Text) || string.sNullOrWhiteSpace(textBox2.Text))
{
messagebox.show("Invalid entry");
}
可悲的是,我没有Visual Studio来检查这一点,但是在执行SQL之前我还要检查文本框是否为空。
此外,我还会将您的文本框名称更改为您要记住的内容,否则您在维护代码时会发现这是一场噩梦。