C#-文件读取数据至dataset以更新database
来源:互联网 发布:php判断是否点击submit 编辑:程序博客网 时间:2024/05/16 15:48
/// <summary>
/// 以dataset更新数据库
/// </summary>
/// <param name="ds_source">导入更新(insert,delete,update)数据</param>
public bool UseDataSetUpdateDataBase(DataSet ds_source)
{
bool _return = false;
try
{
for (int i = 0; i < ds_source.Tables.Count; i++)
{
//*
MySqlDataAdapter sda = new MySqlDataAdapter("select * from " + ds_source.Tables[i].TableName, this.connectionString);
DataTable datatable = new DataTable();
sda.Fill(datatable);
datatable.PrimaryKey = new DataColumn[] { datatable.Columns[datatable.Columns[0].ColumnName.ToString()] };
//解决DataTable.Merge(DataTable)合并数据而导致列类型冲突问题
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
DataTable targertDatatable = UpdateDataTableDataType(datatable, ds_source.Tables[i]);
datatable.Merge(targertDatatable);
MySqlCommandBuilder cmdBuilder = new MySqlCommandBuilder(sda);
MySqlCommand cmd = cmdBuilder.GetUpdateCommand();
cmd.CommandTimeout = 0;
sda.UpdateCommand = cmd;
sda.Update(datatable);
}
}
catch (Exception ex)
{
throw ex;
}
return _return;
}
/// <summary>
/// 修改数据表DataTable列的类型和记录值(步骤:1.克隆表结构,2.复制表数据,3.返回结果)
/// </summary>
/// <param name="sourceDataTable">克隆表结构</param>
/// <param name="targDataTable">复制表数据</param>
/// <returns></returns>
private DataTable UpdateDataTableDataType(DataTable sourceDataTable,DataTable targetDataTable)
{
DataTable datatableResult = new DataTable();
datatableResult = sourceDataTable.Clone();
foreach (DataRow row in targetDataTable.Rows)
{
DataRow rowNew = datatableResult.NewRow();
foreach (DataColumn column in targetDataTable.Columns)
{
rowNew[column.ColumnName.ToString()] = row[column.ColumnName.ToString()];
}
datatableResult.Rows.Add(rowNew);
}
return datatableResult;
}
/// 以dataset更新数据库
/// </summary>
/// <param name="ds_source">导入更新(insert,delete,update)数据</param>
public bool UseDataSetUpdateDataBase(DataSet ds_source)
{
bool _return = false;
try
{
for (int i = 0; i < ds_source.Tables.Count; i++)
{
//*
MySqlDataAdapter sda = new MySqlDataAdapter("select * from " + ds_source.Tables[i].TableName, this.connectionString);
DataTable datatable = new DataTable();
sda.Fill(datatable);
datatable.PrimaryKey = new DataColumn[] { datatable.Columns[datatable.Columns[0].ColumnName.ToString()] };
//解决DataTable.Merge(DataTable)合并数据而导致列类型冲突问题
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
DataTable targertDatatable = UpdateDataTableDataType(datatable, ds_source.Tables[i]);
datatable.Merge(targertDatatable);
MySqlCommandBuilder cmdBuilder = new MySqlCommandBuilder(sda);
MySqlCommand cmd = cmdBuilder.GetUpdateCommand();
cmd.CommandTimeout = 0;
sda.UpdateCommand = cmd;
sda.Update(datatable);
}
}
catch (Exception ex)
{
throw ex;
}
return _return;
}
/// <summary>
/// 修改数据表DataTable列的类型和记录值(步骤:1.克隆表结构,2.复制表数据,3.返回结果)
/// </summary>
/// <param name="sourceDataTable">克隆表结构</param>
/// <param name="targDataTable">复制表数据</param>
/// <returns></returns>
private DataTable UpdateDataTableDataType(DataTable sourceDataTable,DataTable targetDataTable)
{
DataTable datatableResult = new DataTable();
datatableResult = sourceDataTable.Clone();
foreach (DataRow row in targetDataTable.Rows)
{
DataRow rowNew = datatableResult.NewRow();
foreach (DataColumn column in targetDataTable.Columns)
{
rowNew[column.ColumnName.ToString()] = row[column.ColumnName.ToString()];
}
datatableResult.Rows.Add(rowNew);
}
return datatableResult;
}
0 0
- C#-文件读取数据至dataset以更新database
- 读取CSV文件数据,得到DataSet
- DataBase和DataSet同步数据
- DataSet读取数据用法
- DataSet(二) 读取数据
- DataSet,DataAdapter读取数据
- DataSet数据更新失败
- DataSet 读取xml文件
- DataSet 读取 Xml 文件
- C#从Excel文件中读取数据转换为DataSet
- c#:Dataset读取XML文件动态生成菜单
- 读取xml数据到DataSet
- 读取XML数据到DataSet
- DataSet 读取xml 导入数据
- C#读取DataSet中的数据
- C#一行一行读取DataSet 数据
- C# 用DataSet读取数据
- C# 用DataSet读取数据
- xposed源码编译与集成
- JavaScript之window.console
- c regex 用法
- jsp9大内置对象详解
- xcode创建一个游戏项目
- C#-文件读取数据至dataset以更新database
- 【笔记】cisco路由器动态IP接入NAT设定
- 设计模式 --3.单一职责原则,4.开发-封闭原则,5依赖倒转原则
- Go语言 常用数据类型底层结构分析
- String,StringBuffer,StringBuilder个人认为较重要的区别
- 【C语言】题目1001:A+B for Matrices【学好英语很重要】
- cookie和session(宇宙级框架express)
- PS快捷键大全
- C++实现栈应用之进制转换