如果成功完成sql请求,则显示消息

时间:2017-03-30 22:07:06

标签: c# sql

如果我的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请求的结果时显示成功的操作,而不是每次我执行该命令时都显示。

3 个答案:

答案 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();
  }
相关问题