我在运行项目时遇到错误。如果textbox1为空,我想创建一个if语句。我的代码是这样的:
SqlCommand cmd = new SqlCommand(" DELETE from Records WHERE ([Student ID]='" + textBox1.Text + "')", con);
MessageBox.Show("Data Deleted!", "Information ... ", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
textBox1.Text = " ";
if (textBox1.Text = " ")
{
MessageBox.Show("Please enter Student ID", "Delete Failed",MessageBoxButtons.OK,MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
}
cmd.ExecuteNonQuery();
con.Close();
错误发生在texbox1.Text =“”
上答案 0 :(得分:6)
这是您的问题的根源:
if (textBox1.Text = " ")
=
是赋值运算符。您想使用==
进行比较。
另一种选择是使用string.IsNullOrWhiteSpace
。如果字符串为null
,""
或任何数量的空格,则返回true。
E.g。
if (string.IsNullOrWhiteSpace(textBox1.Text))
顺便说一句,您的SQL容易受到SQL注入漏洞的攻击。请使用参数化查询。
答案 1 :(得分:5)
您正在与=
进行比较,后者设置了一个值。
相反,您需要使用等于运算符==
。
答案 2 :(得分:3)
更改
if (textBox1.Text = " ")
到
if (textBox1.Text == " ")
像;
SqlCommand cmd = new SqlCommand(" DELETE from Records WHERE [Student ID] = @studentID", con);
cmd.Parameters.AddWithValue("@studentID", textBox1.Text);
MessageBox.Show("Data Deleted!", "Information ... ", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
textBox1.Text = " ";
if (String.IsNullOrWhiteSpace(textBox1.Text))
{
MessageBox.Show("Please enter Student ID", "Delete Failed",MessageBoxButtons.OK,MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
}
cmd.ExecuteNonQuery();
con.Close();
并且您应始终使用parameterized queries,此类代码可用于 SQL Injection 攻击。
使用String.IsNullOrWhiteSpace
方法更合乎逻辑。
指示指定的字符串是null,空还是仅包含 白色空间字符。
顺便说一句,既然你自己决定你的文本,这两行就是意义。
textBox1.Text = " ";
if (String.IsNullOrWhiteSpace(textBox1.Text))
答案 3 :(得分:3)
这应该有用。
SqlCommand cmd = new SqlCommand(" DELETE from Records WHERE ([Student ID]='" + textBox1.Text + "')", con);
MessageBox.Show("Data Deleted!", "Information ... ", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
textBox1.Text = " ";
if (textBox1.Text == " ")
{
MessageBox.Show("Please enter Student ID", "Delete Failed",MessageBoxButtons.OK,MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
}
cmd.ExecuteNonQuery();
con.Close();
答案 4 :(得分:1)
您也可以使用
if(textBox1.Text.trim()=="")
{
MessageBox.Show("Please enter Student ID", "Delete Failed",MessageBoxButtons.OK,MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
}
cmd.ExecuteNonQuery();}
这也处理空格“”。