【问题标题】:Difference between ExecuteScalar() and ExecuteNonQuery()ExecuteScalar() 和 ExecuteNonQuery() 之间的区别
【发布时间】:2013-12-12 08:19:48
【问题描述】:

标题可能看起来像往常一样。但我有一个值得质疑的问题。

我参考了this 链接来了解 ExecuteScalar() 和 ExecuteNonQuery() 之间的区别。

但他们提到,ExecuteScalar() 仅适用于非操作查询。

是真的吗?

很多人理解错了ExecuteScalar()

你们试过下面的代码吗?

SqlConnection con = new SqlConnection("Data Source=SCI-DT-13; Initial Catalog=exercise; Integrated Security=true");
con.Open();
SqlCommand cmd = new SqlCommand("Insert into empdetails values('" + t_empid.Text + "','" + t_empname.Text + "','" + t_empdesig.Text + "')", con);
cmd.ExecuteScalar();

我确信这段代码可以正常工作,并且该行将被插入到表中。

我的问题是,如果我们可以在ExecuteScalar() 中执行action queries,那么为什么我们需要ExecuteNonQuery()

【问题讨论】:

标签: c# .net ado.net sqlcommand


【解决方案1】:

你说得对,ExecuteScalar 会为操作查询返回 null。

使用ExecuteNonQuery 的一个原因是它返回受影响的行数。

我认为您不应该认为您链接的文章是权威来源 - 最好参考 MSDN 所说的内容。

【讨论】:

    【解决方案2】:

    ExecuteScalar - 它只返回一个值。
    ExecuteNonQuery - 它只执行 DML 操作,如 INSERT、UPDATE、DELETE

    【讨论】:

      猜你喜欢
      • 2011-02-27
      • 2019-08-27
      • 1970-01-01
      • 2011-06-29
      • 1970-01-01
      • 2021-12-25
      • 2020-05-10
      • 2014-09-20
      • 2010-10-28
      相关资源
      最近更新 更多