我有许多自动生成的数据访问类来处理诸如插入和更新之类的事情。
这些看起来像:
cmd.CommandType = CommandType.Text
cmd.CommandText = "UPDATE myTable set f1 = :f1, f2 = :f2, f3 = :f3 where id = :id"
cmd.Parameters.AddWithValue(":f1", _f1)
cmd.Parameters.AddWithValue(":f2", _f2)
cmd.Parameters.AddWithValue(":f3", _f3)
cmd.ExecuteNonQuery()
如果我要重写 sql 来做我想做的事,它看起来像
cmd.CommandText = "UPDATE myTable set f1 = pkg.getMyValue, f2 = :f2, f3 = :f3 where id = :id"
有没有办法通过将 _f1 设置为“特殊”值来做到这一点,而不更改更新 SQL 或设置参数的方式?只有在某些情况下,我才需要设置 f1 的值——大多数情况下,它将为空。
针对 oracle 11 使用 .net 2.0 和 system.data.oracleclient。