dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法
本文主要向大家介紹了MySQL數據庫之c#mysql批量更新的兩種方法 ,通過具體的內容向大家展現,希望對大家學習MySQL數據庫有所幫助。
總體而言update?更新上傳速度還是慢.
1:??簡單的insert??速度稍稍比MySqlDataAdapter慢一點
配合dapper
配置文件
string?connectionString?=?ConfigurationManager.ConnectionStrings["mysqlconnectionString"].ToString();
public?int?Update(BaseTable?model)
{
#region?SQL語句
const?string?sql?=?@"
UPDATE??terminal_base
SET??license_number2?=?@license_number2??WHERE?license_number?=?@license_number";
#endregion
using?(MySqlConnection?connection?=?new?MySqlConnection(connectionString))
{
return?connection.Execute(sql,?model);
}
}
public?class?BaseTable
{
public?string?license_number?{?get;set;?}??//客戶編碼
public?string?shop_name?{?get;?set;?}??//店鋪名稱
public?string?user_name?{?get;?set;?}??//姓名
public?string?phone_number?{?get;?set;?}?//手機號
}
更新5萬數據用了十來分鐘吧.單線程處理的
2用MySqlDataAdapter上傳?這個坑不少,網上資料也很少,???fill是?從當前數據庫查詢到數據填充到dataset,?update是把?改完的dataset?上傳到mysql??.
///?
///使用MySqlDataAdapter批量更新數據
///?
///?數據庫連接字符串
///?數據表
public?void?BatchUpdate(List?model)
{
DataTable?table?=?ListToDatatable.ToDataTable(model);
table.TableName?=?"terminal_base";
table.ExtendedProperties.Add("SQL",?"select?license_number,license_number2?from?terminal_base");
MySqlConnection?connection?=?new?MySqlConnection(connectionString);
connection.Open();
//創建數據適配器
string?sqlcommd=?"select?license_number,license_number2?from?zyzs_terminal_base";
MySqlDataAdapter?adapter?=?new?MySqlDataAdapter(sqlcommd,?connection);
DataSet?ds?=?new?DataSet();//創建數據集
adapter.Fill(ds,?"terminal_base");
//??ds.Tables.Clear();
//給SqlDataAdapter的UpdateCommand屬性指定執行更新操作的SQL語句select?*?from?zyzs_terminal_base
adapter.UpdateCommand?=?new?MySqlCommand("update?terminal_base?set?license_number2?=?@license_number2?where?license_number=@license_number",?connection);
//添加參數并賦值
adapter.UpdateCommand.Parameters.Add("@license_number2",?MySqlDbType.VarChar,?50,?"license_number2");
MySqlParameter?prams_ID?=?adapter.UpdateCommand.Parameters.Add("@license_number",?MySqlDbType.VarChar);
prams_ID.SourceColumn?=?"license_number";
prams_ID.SourceVersion?=?DataRowVersion.Original;
//填充數據集??//調用Update方法提交更新后的數據集ds,并同步更新數據庫數據
adapter.Update(ds,?"terminal_base");
//??transaction.Commit();
//MySqlCommand?command?=?connection.CreateCommand();
//command.CommandTimeout?=?4000;
//command.CommandType?=?CommandType.Text;
//MySqlDataAdapter?adapter?=?new?MySqlDataAdapter(command);
//MySqlCommandBuilder?commandBulider?=?new?MySqlCommandBuilder(adapter);
//commandBulider.ConflictOption?=?ConflictOption.OverwriteChanges;
//MySqlTransaction?transaction?=?null;
//try
//{
//????connection.Open();
//????transaction?=?connection.BeginTransaction();
//????//設置批量更新的每次處理條數
//????adapter.UpdateBatchSize?=?1000;
//????//設置事物
//????adapter.SelectCommand.Transaction?=?transaction;
//????if?(table.ExtendedProperties["SQL"]?!=?null)
//????{
//????????adapter.SelectCommand.CommandText?=?table.ExtendedProperties["SQL"].ToString();
//????}
//????adapter.Fill(ds,?"zyzs_terminal_base");
//????adapter.Update(table);
//????transaction.Commit();/提交事務
//??}
//catch?(MySqlException?ex)
//{
//????if?(transaction?!=?null)?transaction.Rollback();
//????throw?ex;
//}
//finally
//{
//????connection.Close();
//????connection.Dispose();
//}
}
//public?int?Update(Model.Model?model)
//{
//????#region?SQL語句
//????const?string?sql?=?@"
//????UPDATE?[dbo].[Contacts]
//????SET
//????????????[UserName]?=?@UserName
//????????????,[Tel]?=?@Tel
//????????????,[Tel1]?=?@Tel1
//????????????,[Address]?=?@Address
//????????????????WHERE?[Id]?=?@Id";
//????#endregion
//????using?(SqlConnection?connection?=?new?SqlConnection(connstr))
//????{
//????????return?connection.Execute(sql,?model);
//????}
//}
#endregion
本文由職坐標整理并發布,希望對同學們學習MySQL有所幫助,更多內容請關注職坐標數據庫MySQL數據庫頻道!
總結
以上是生活随笔為你收集整理的dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jmeter时间函数格林尼治时间_Jme
- 下一篇: mysql 存储过程 显示控制_mysq