如果我的sql请求没有问题,我想显示消息。在这一刻,我有代码显示每个成功完成请求的MessageBox,但如果没有用户名并且没有再次执行,则显示相同的消息框。
try
{
using (SqlConnection con = new SqlConnection(constring))
{
con.Open();
using (SqlCommand command = new SqlCommand("DELETE FROM dbo.Admin WHERE UserName = '" + txtUserName.Text +"'", con))
{
command.ExecuteNonQuery();
MessageBox.Show("Successful operation!");
}
con.Close();
}
我该如何解决?我想只在有sql请求的结果时显示成功的操作,而不是每次我执行该命令时都显示。
答案 0 :(得分:0)
您可以获得受影响的行数,如下所示:
var numbersOfAffectedRows = command.ExecuteNonQuery();
然后检查它是否大于零。
if(numbersOfAffectedRows>0)
{
MessageBox.Show("Successful operation!");
}
答案 1 :(得分:0)
查看ExecuteNonQuery
方法的结果,它会返回受影响的行数。因此,如果它高于0,您可以显示消息框:
if(command.ExecuteNonQuery() > 0)
{
MessageBox.Show("Successful operation!");
}
你的代码在安全性方面还有另一个问题,你永远不应该通过连接普通用户输入来构建一个sql查询,而应该使用Sql参数,你可以从下面的链接中了解更多关于它和sql注入的内容:
答案 2 :(得分:0)
您应该检查从ExecuteNonQuery命令重新调整的受影响的行数,如下所示:
using (SqlConnection con = new SqlConnection(constring))
{
con.Open();
using (SqlCommand command = new SqlCommand("DELETE FROM dbo.Admin WHERE UserName = '" + txtUserName.Text +"'", con))
{
if( command.ExecuteNonQuery() > 0)
MessageBox.Show("Successful operation!");
}
con.Close();
}