C#Datatable导入sqlserver数据库中,三种常见,快捷的方法
来源:互联网 发布:唐山地震 知乎 编辑:程序博客网 时间:2024/06/09 23:25
第一种,最常见的Executenonquery(返回影响的行数)sql是我的查询插入语句,你可以换成你的!这种方式入库,速度一般,大量数据时不提倡使用
/// <summary>
/// 通过table一个一个的插入
/// </summary>
/// <param name="table"></param>
public static void Executenonquery(DataTable table)
{
foreach (DataRow itemRow in table.Rows)
{
//if exists(select * from dbo.ID where ENG = '')
// begin
// return;
// end
//else
// begin
// INSERT INTO ID([ENG],[GB],[B5],[FILE],[MSG]) values('', '', '', '', '')
// end
string sql = "if exists(select * from " + table.TableName + " where ENG = '" + itemRow["ENG"].ToString() + "') "+
" begin return; end else begin INSERT INTO " + table.TableName + "([ENG],[GB],[B5],[FILE],[MSG])" +
"VALUES('" + itemRow["ENG"].ToString() + "'" +
",'" + itemRow["GB"].ToString() + "'" +
",'" + itemRow["B5"].ToString() + "'" +
",'" + itemRow["FILE"].ToString() + "'" +
",'" + itemRow["MSG"].ToString() + "') end";
using (SqlConnection sqlconn = new SqlConnection(connectString))
{
sqlconn.Open();
SqlCommand sqlcommand = new SqlCommand(sql, sqlconn);
sqlcommand.ExecuteNonQuery();
sqlconn.Close();
}
}
}
2,通过adapter入库,这种入库,起先,你需要先把datatable放入到dataset中然后进行入库,这种方式主要是对库中对应的表进行增删改,方便使用(效率只比第一种方式好点)
/// <summary>
/// 通过adapter更新数据库
/// </summary>
/// <param name="dataset"></param>
public static void DataadapterInssert(DataSet dataset)
{
if (dataset.Tables.Count > 0)
{
foreach (DataTable itemTable in dataset.Tables)
{
SqlCommand insertcommand = new SqlCommand("if exists(select * from " + itemTable.TableName + " where ENG = @ENG) begin return; end "+
" else begin INSERT INTO " + itemTable.TableName + "([ENG],[GB],[B5],[FILE],[MSG])" +
"VALUES(@ENG, @GB,@B5,@FILE,@MSG) end", new SqlConnection(connectString));
insertcommand.Parameters.Add("@ENG", SqlDbType.VarChar, 100, "ENG");
insertcommand.Parameters.Add("@GB", SqlDbType.VarChar, 100, "GB");
insertcommand.Parameters.Add("@B5", SqlDbType.VarChar, 200, "B5");
insertcommand.Parameters.Add("@FILE", SqlDbType.VarChar, 200, "FILE");
insertcommand.Parameters.Add("@MSG", SqlDbType.VarChar, 100, "MSG");
SqlDataAdapter sqldataadapter = new SqlDataAdapter();
sqldataadapter.InsertCommand = insertcommand;
sqldataadapter.Update(dataset, itemTable.TableName);
}
}
}
3,重头戏都在最后,这种方式速度比前两种快很多,适合用于大量数据插入更新,也将datatable放入dataset中然后通过遍历,将datatable复制到数据库中对应的表中,快速便捷
/// <summary>
/// 通过SqlBulkCopy复制table数据到数据库
/// </summary>
/// <param name="dataset"></param>
public static void SqlbulkcopyInsert(DataSet dataset)
{
string ie;
if (dataset.Tables.Count > 0)
{
foreach (DataTable itemTable in dataset.Tables)
{
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectString, SqlBulkCopyOptions.UseInternalTransaction);
sqlbulkcopy.DestinationTableName = itemTable.TableName;//数据库中的表名
for (int i = 0; i < itemTable.Rows.Count; i++)
{
ie = itemTable.Rows[i][2].ToString();
}
sqlbulkcopy.WriteToServer(itemTable);
}
}
}
- C#Datatable导入sqlserver数据库中,三种常见,快捷的方法
- [C#]使用DataSet Datatable 更新数据库的三种方式
- Excel导入DataTable的两种方法
- 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据
- 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据
- 简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据
- asp.net(c#) DataTable 快速导入数据库
- [转]DataTable的数据批量写入数据库三种方法比较
- 【转】C#使用DataSet Datatable更新数据库的三种实现方法
- C#使用DataSet Datatable更新数据库的三种实现方法
- SQLSERVER的逆向工程,将数据库导入到PowerDesigner中
- c#中高效的excel导入sqlserver的方法
- c#中高效的excel导入sqlserver的方法
- c#中高效的excel导入sqlserver的方法
- c#中高效的excel导入sqlserver的方法
- c#中高效的excel导入sqlserver的方法
- c#中高效的excel导入sqlserver的方法
- c#中高效的excel导入sqlserver的方法
- (1)、JEasyUI 之datagrid的Combobox显示textField值的问题
- WebRTC应用中如何检测回音
- 深度学习领域PyTorch项目-git源码整理
- 形态学处理
- Stanford Core NLP
- C#Datatable导入sqlserver数据库中,三种常见,快捷的方法
- linux C 获取网关代码实现
- 矩阵快速幂模板
- 选择排序(排序算法--比较排序)
- DPDK-ELASTIC FLOW DISTRIBUTOR LIBRARY(灵活的流分发库)
- PyCharm无法使用Django新建项目:'django-admin.py'不是内部或外部命令
- WordPress 建站中15个常见的错误
- js中bind、call和apply的区别
- Openstack实例控制台无法打开的解决办法