【发布时间】:2013-01-15 13:47:46
【问题描述】:
我有我的项目,从我的 Visual c# 访问 oracle 数据库 我在使用更新命令时遇到问题
这是我的代码
string updatetodb = "update tugas_oop ";
updatetodb += "set stok = :i_stok, ";
updatetodb += "dana_keluar = :i_dana_keluar ";
updatetodb += "where nama_barang = '" + nama_barang[i] + "' and satuan = '" + satuan[i] + "';";
cmd.CommandText = updatetodb;
OracleParameter istok = new OracleParameter();
istok.OracleDbType = OracleDbType.Int32;
istok.Value = updatestok;
istok.ParameterName = "i_stok";
OracleParameter idana_keluar = new OracleParameter();
idana_keluar.OracleDbType = OracleDbType.Int32;
idana_keluar.Value = updatedanakeluar;
idana_keluar.ParameterName = "i_dana_keluar";
cmd.Parameters.Add(istok);
cmd.Parameters.Add(idana_keluar);
cmd.ExecuteNonQuery();
我收到错误消息 ora-00911 你能告诉我,我在哪里做错了吗?
【问题讨论】:
-
为什么只使用部分参数?
nama_barang[i]和satuan[i]也应该被参数化。 -
你听说过存储过程吗?阅读那些
-
upatestok 和 updatedanakeluar 的值是多少?这是您的确切代码吗?除非您将 commnand 的
BindByName属性显式设置为 true,否则参数的名称是不相关的,它们受位置约束。有关更多详细信息,请参阅this question