使用:.NET 4、ODP.NET 11.2.0.3.0、Oracle 数据库 10g 版本 10.2.0.3.0
我正在疯狂地试图确定为什么我的删除语句不起作用。也许这里有人可以帮助我。
这是可以工作的代码:
cmd = New OracleCommand("delete from u_parameters where pkey = :pkey and user_id = :user_id and computer is null", Con)
cmd.Parameters.Add("pkey", OracleDbType.NVarchar2).Value = "Test"
cmd.Parameters.Add("user_id", OracleDbType.Decimal).Value = 1
cmd.ExecuteNonQuery() ' -- this returns 1 as it should
这是不起作用的代码:
cmd = New OracleCommand("delete from u_parameters where pkey = :pkey and user_id = :user_id and computer = :computer", Con)
cmd.Parameters.Add("pkey", OracleDbType.NVarchar2).Value = "Test"
cmd.Parameters.Add("user_id", OracleDbType.Decimal).Value = 1
cmd.Parameters.Add("computer", OracleDbType.NVarchar2).Value = DBNull.Value
cmd.ExecuteNonQuery() ' -- this returns 0!!
不起作用我的意思是该语句执行但数据库中没有任何反应(并且 ExecuteNonQuery 的结果为 0,这意味着没有受影响的行)。我真的不明白这里可能是什么问题。我尝试将“计算机”参数 IsNullable 设置为 True,但它并没有改变任何东西。
请帮忙。