我有一个在 SQL Developer 中工作的小型更新查询。
UPDATE people
SET months = 8
WHERE number = 599
非常坦率的。它有效 - 这也适用于 C#。问题是我想使用参数的那一刻(它适用于数字但不适用于月份)它将停止工作。
我在 C# 中有这段代码:
using (OracleConnection con = new OracleConnection(connectionString))
{
con.Open();
OracleCommand command = con.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "UPDATE people " +
"SET months = :months " +
"WHERE number = :number";
command.Parameters.Add(":number", OracleDbType.Int32).Value = number;
command.Parameters.Add(":months", OracleDbType.Int32).Value = months;
command.ExecuteNonQuery();
}
它们都是 oracle 中的 Number 类型,我尝试将 OracleDbType 更改为 Decimal,几乎所有内容都没有成功。奇怪的是, :number 参数有效,但几个月没有更新(它不会崩溃,只是不会更新)。但是,如果我将 :months 参数更改为像 7 这样的静态值 - 它会起作用。