0

我有我的项目,从我的可视化 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 你能告诉我,我在哪里出错了吗?

4

1 回答 1

0

用。。。来代替

istok.ParameterName = ":i_stok";

idana_keluar.ParameterName = ":i_dana_keluar";

我建议您使用string.Format(确保您对报价没有问题)

string.Format("update tugas_oop set stok = :i_stok, dana_keluar = :i_dana_keluar where nama_barang = {0} and satuan = {1}",nama_barang[i],satuan[i]);

注意:对我来说,我更喜欢在调用之前使用存储过程来验证您的查询

于 2013-01-31T12:54:48.693 回答