string InsertQuery = ""; MySqlTransaction transaction; MySqlConnection con1 = new MySqlConnection(); MySqlDataAdapter ODA; string server = loggerConnectionString.servername; con1.ConnectionString ="server="localhost";uid=root;pwd=;database=globasys;"; con1.Open(); transaction = con1.BeginTransaction(); ODA = new MySqlDataAdapter(); InsertQuery = "Insert into tr_config_unit_params " + Environment.NewLine; InsertQuery += "(unit_param_id,unit_id, unit_param_desc, unit_param_opc_progid, unit_param_host, unit_param_link, unit_param_data_type, unit_param_type) " + Environment.NewLine; InsertQuery += " VALUES(@unit_param_id,@unit_id,@unit_param_desc, @unit_param_opc_progid, @unit_param_host, @unit_param_link, @unit_param_data_type, @unit_param_type)";; ODA.InsertCommand =new MySqlCommand(InsertQuery, con1); ODA.InsertCommand.Parameters.Add("@unit_param_id", MySqlDbType.Int32); ODA.InsertCommand.Parameters.Add("@unit_id"", MySqlDbType.Int32); ODA.InsertCommand.Parameters.Add("@unit_param_desc", MySqlDbType.VarChar); ODA.InsertCommand.Parameters.Add("@unit_param_opc_progid", MySqlDbType.VarChar); ODA.InsertCommand.Parameters.Add("@unit_param_host", MySqlDbType.VarChar); ODA.InsertCommand.Parameters.Add("@unit_param_link", MySqlDbType.VarChar); ODA.InsertCommand.Parameters.Add("@unit_param_data_type", MySqlDbType.Int32); ODA.InsertCommand.Parameters.Add("@unit_param_type", MySqlDbType.Int32); ODA.InsertCommand.Transaction = transaction; DataSet ds = new DataSet(); ds = dt; int y= ODA.Update(dt,"tr_config_unit_params"); transaction.Commit(); con1.Close();
我使用Mysqldataadapter.update()插入150000行,但查询执行成功,但MYSQL中的数据库表中没有行插入
提前感谢.....
答案 0 :(得分:0)
MySqlDataAdapter的更新功能已重载。为指定DataSet中每个插入,更新或删除的行调用相应的INSERT,UPDATE或DELETE语句。
因此,您可以使用以下代码:
string conn = "server="localhost";uid=root;pwd=;database=globasys;";
using (MySqlConnection con1 = new MySqlConnection(conn))
{
con1.Open();
MySqlTransaction transaction = con1.BeginTransaction();
string InsertQuery = "Insert into tr_config_unit_params " + Environment.NewLine;
InsertQuery += "(unit_param_id,unit_id, unit_param_desc, unit_param_opc_progid, unit_param_host, unit_param_link, unit_param_data_type, unit_param_type) " + Environment.NewLine;
InsertQuery += " VALUES(@unit_param_id,@unit_id,@unit_param_desc, @unit_param_opc_progid, @unit_param_host, @unit_param_link, @unit_param_data_type, @unit_param_type)";;
MySqlCommand command = new MySqlCommand(InsertQuery, con1);
command.Transaction = transaction;
try
{
//dt is a DataTable
foreach(DataRow dataRow in dt)
{
command.Parameters.Clear()
command.Parameters.AddWithValue("@unit_param_id", dataRow["unit_param_id"]);
command.Parameters.AddWithValue("@unit_id", dataRow["unit_id"]);
command.Parameters.AddWithValue("@unit_param_desc", dataRow["unit_param_desc"]);
command.Parameters.AddWithValue("@unit_param_opc_progid", dataRow["unit_param_opc_progid"]);
command.Parameters.AddWithValue("@unit_param_host", dataRow["unit_param_host"]);
command.Parameters.AddWithValue("@unit_param_link", dataRow["unit_param_link"]);
command.Parameters.AddWithValue("@unit_param_data_type", dataRow["unit_param_data_type"]);
command.Parameters.AddWithValue("@unit_param_type", dataRow["unit_param_type"]);
command.ExecuteNonQuery();
}
transaction.Commit();
}
catch(MySqlException mySqlEx)
{
transaction.Rollback();
throw mySqlEx;
}
}