更新查询无效c#

时间:2012-09-05 11:47:22

标签: c# sql sql-server sqlcommand

我在sql management studio中使用了这个查询并且它有效,我尝试了一个没有and条件的缩短查询并且它有效,为什么and条件破坏了代码?

string dbQuery = "update log_file set updated = @true where urn = @urn and companyid = @companyid";
cmd.Parameters.Add(new SqlParameter("@urn", SqlDbType.Int)).Value = urn;
cmd.Parameters.Add(new SqlParameter("@companyid", SqlDbType.Int)).Value = companyid;
cmd.Parameters.Add(new SqlParameter("@true", SqlDbType.Bit)).Value = 0;

cmd.CommandText = (dbQuery);
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
cmd.ExecuteNonQuery();

2 个答案:

答案 0 :(得分:2)

如果and companyid = @companyid导致它不起作用(我认为你的意思是更新没有发生而不是收到错误信息,那么唯一的解释就是你要传递的公司名称不是&#39 ; t。正确。您在Management Studio中的测试可能正在使用您认为应该拥有的值,而不是它实际执行的值。

您应该确认调试会话中的所有参数都是正确的,然后找出原因,如果它们不是。

答案 1 :(得分:1)

对于位类型

,替换为false
cmd.Parameters.Add(new SqlParameter("@true", SqlDbType.Bit)).Value = false;

如果要使用0作为值,请将int参数替换为Int