标题可能看起来像往常一样。但我有价值的问题。
我在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();
我确信此代码可以正常工作,并且行将插入到表中。
我的问题是,如果我们可以在action queries
中执行ExecuteScalar()
,那么为什么我们需要ExecuteNonQuery()
?
答案 0 :(得分:3)
你是对的,ExecuteScalar
将为动作查询返回null。
使用ExecuteNonQuery
的一个原因是它返回受影响的行数。
我认为您不应该认为您链接的文章是权威来源 - 更好地参考MSDN所说的内容。
答案 1 :(得分:0)
ExexuteScalar - 只返回一个值 ExecuteNonQuery-它只执行像INSERT,UPDATE,DELETE
这样的DML操作