gpt4 book ai didi

c# - Mysql 数据适配器 InsertCommand

转载 作者:行者123 更新时间:2023-11-29 13:43:03 25 4
gpt4 key购买 nike

我有以下代码

MySqlConnection myCon = new MySqlConnection(System.Configuration.ConfigurationManager.AppSettings["mySQLCon"]);
MySqlDataAdapter dAdap = new MySqlDataAdapter();
dAdap.InsertCommand = new MySqlCommand("insert into PMduedates(eCId,ECClass,ddate,PMType) values(eCId,ECClass,ddate,PMType)", myCon);
dAdap.InsertCommand.Parameters.Add("eCId", MySqlDbType.VarChar, 20, "eqpID");
dAdap.InsertCommand.Parameters.Add("ECClass", MySqlDbType.VarChar, 100, "class");
dAdap.InsertCommand.Parameters.Add("ddate", MySqlDbType.VarChar, 100, "MaintType");
dAdap.InsertCommand.Parameters.Add("PMType", MySqlDbType.Date, 10, "Duedate");
myCon.Open();
dAdap.Update(dtDue);
myCon.Close();

在上面的代码中,dtDue 是一个数据表,eqpID、class、MaintType 和 Duedate 是数据列。当我执行代码时,它不会给出任何错误,但表 PMduedates 中的数据没有更新。

最佳答案

为什么DataAdapter应该在DataTable中插入记录?没有人告诉它这样做。仅当行位于 RowState.Added 中时,它才会插入行,你可以用这种方式强制它:

foreach (DataRow row in dtDue.Rows)
row.SetAdded();

但是由于您无论如何都要手动提供插入命令和参数,所以我也会手动执行查询:

using(var myCon = new MySqlConnection(System.Configuration.ConfigurationManager.AppSettings["mySQLCon"]))
using(var cmd = new MySqlCommand("insert into PMduedates(eCId,ECClass,ddate,PMType) values(eCId,ECClass,ddate,PMType)", myCon))
{
cmd.InsertCommand.Parameters.Add("eCId", MySqlDbType.VarChar, 20, "eqpID");
cmd.InsertCommand.Parameters.Add("ECClass", MySqlDbType.VarChar, 100, "class");
cmd.InsertCommand.Parameters.Add("ddate", MySqlDbType.VarChar, 100, "MaintType");
cmd.InsertCommand.Parameters.Add("PMType", MySqlDbType.Date, 10, "Duedate");
myCon.Open();
int countInserted = cmd.ExecuteNonQuery();
} // using closes the connection implicitely

关于c# - Mysql 数据适配器 InsertCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17827885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com