INSERT 查询实际上没有插入任何数据

Posted

技术标签:

【中文标题】INSERT 查询实际上没有插入任何数据【英文标题】:INSERT query actually didn't insert any data 【发布时间】:2020-02-15 11:13:42 【问题描述】:

目前,我正在为一家商店做一个项目。我遇到的问题是“INSERT”查询实际上并没有插入任何东西。

try-catch 没有发现任何问题,这增加了我的困惑。我也调试了代码,没有发现异常。

koneksi.Open();             
mysqlCommand masuk = new MySqlCommand(a, koneksi);
masuk.CommandType = CommandType.StoredProcedure;

Random utk_id = new Random();
int panggil_acak = utk_id.Next();

masuk.Parameters.AddWithValue("_id_transaksi", Convert.ToString(panggil_acak));
masuk.Parameters.AddWithValue("_id_barang", Convert.ToString(id.Text));
masuk.Parameters.AddWithValue("_nama_barang", Convert.ToString(nama.Text));
masuk.Parameters.AddWithValue("_harga_satuan", Convert.ToString(harga.Text));
masuk.Parameters.AddWithValue("_jumlah_barang", Convert.ToString(jmlh_brg_beli.Text));
masuk.Parameters.AddWithValue("_diskon", Convert.ToString(diskon_rp.Text));
masuk.Parameters.AddWithValue("_harga_total", Convert.ToString(harga_barang_total.Text));
masuk.Parameters.AddWithValue("_tgl_transaksi", Convert.ToString(DateTime.Now.ToString()));

//execute command
masuk.ExecuteNonQuery();
clear text area and refresh data grid
rstArea();
isiDgrid();

该命令是一个存储过程,应用程序没有给出错误反馈。

CREATE DEFINER=`root`@`localhost` PROCEDURE `belanjaTemp_add`(
_id_transaksi varchar(20),
_id_barang varchar(10),
_nama_barang varchar(255),
_harga_satuan varchar(10),
_jumlah_barang varchar(10),
_diskon varchar(45),
_harga_total varchar(10),
_tgl_transaksi varchar(45)
)
BEGIN
if(_id_transaksi = 0)
then
insert into komodo.penjualan_temp
(id_transaksi, id_barang, nama_barang, harga_satuan, jumlah_barang, diskon, harga_total, tgl_transaksi)
values
(_id_transaksi, _id_barang, _nama_barang, _harga_satuan, _jumlah_barang, _diskon, _harga_total, _tgl_transaksi);
END if;
END

我预计数据库会更新,但它没有更新。 成功确认截图: https://ibb.co/b26YdBY

我的问题:我如何设法插入数据?

【问题讨论】:

请不要发布指向您需要帮助的外部代码的链接,请更新您的帖子以包含此信息。我会假设您成功连接到数据库正确吗? 可以在代码之外执行查询吗?如果不是,那么问题出在查询上。 @codexer : 数据库连接成功 @JohnPete22 : 我可以在代码之外执行它 好的,那么它可能是代码。数据库的用户是否有权更新数据,而不仅仅是读取? 【参考方案1】:

尝试使用ExecuteStoredProcedure() 而不是ExecuteNonQuery()

【讨论】:

ExecuteNonQuery 没问题,只要将命令指定为CommandType.StoredProcedure

以上是关于INSERT 查询实际上没有插入任何数据的主要内容,如果未能解决你的问题,请参考以下文章

insert into的用法

Hive insert 字段表错位踩坑

PHP MySQLi不执行插入查询[重复]

如何修复'$this->db->insert_batch($this->tbl, $data) 没有显示任何错误也没有插入数据库'?

SqlCommand INSERT 查询不向数据库中插入数据

C#winform往SQL数据库插入数据后,停止项目,再次运行,数据没有了,是在右键工程添加的数据库。