using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Data;
|
using System.Data.SqlClient;
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
namespace ThreadTestSMGW
|
{
|
public class DataSql
|
{
|
//Database da = DatabaseFactory.CreateDatabase("ConnectionString");
|
////插入数据
|
//public int InsertSql(string starttime,string endtime)
|
//{
|
// string sql = @"insert into tb_jzcs(creattime,updatetime) values(@createtime,@updatetime) ;select @@IDENTITY;";
|
// System.Data.SqlClient.SqlCommand cmd = new SqlCommand();
|
// cmd.Parameters.Add(new SqlParameter() { ParameterName = "@createtime", Value = starttime });
|
// cmd.Parameters.Add(new SqlParameter() { ParameterName="@updatetime",Value=endtime});
|
// cmd.CommandText = sql;
|
// cmd.CommandType = CommandType.Text;
|
// cmd.CommandTimeout = 1000000000;
|
// object ret=da.ExecuteScalar(cmd);
|
// return Convert.ToInt32(ret);
|
//}
|
|
//public void UpdateSql(string time,int id)
|
//{
|
// string sql = @"update tb_jzcs set updatetime=@updatetime where id=@id";
|
// System.Data.SqlClient.SqlCommand cmd = new SqlCommand();
|
// cmd.Parameters.Add(new SqlParameter() { ParameterName = "@updatetime", Value = time });
|
// cmd.Parameters.Add(new SqlParameter() { ParameterName="@id",Value=id});
|
// cmd.CommandText = sql;
|
// cmd.CommandType = CommandType.Text;
|
// cmd.CommandTimeout = 1000000000;
|
// da.ExecuteNonQuery(cmd);
|
//}
|
|
/**/
|
/// <summary>
|
/// SqlBulkCopy
|
/// </summary>
|
/// <param name="connectionString">目标连接字符</param>
|
/// <param name="TableName">目标表</param>
|
/// <param name="dt">源数据</param>
|
public void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt)
|
{
|
using (SqlConnection conn = new SqlConnection(connectionString))
|
{
|
//生成SqlBulkCopy 实例,构造函数指定了目标数据库,使用SqlBulkCopyOptions.UseInternalTransaction是指迁移动作指定在一个Transaction当中,如果数据迁移中产生错误或异常将发生回滚。
|
using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
|
{
|
try
|
{
|
sqlbulkcopy.BulkCopyTimeout = 5000;//指定操作完成的Timeout时间
|
sqlbulkcopy.DestinationTableName = TableName;
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
|
}
|
|
|
sqlbulkcopy.WriteToServer(dt);//WriteToServer方法就是将数据源拷备到目标数据库。在使用WriteToServer方法之前必须先指定 DestinationTableName属性,也就是目标数据库的表名
|
}
|
catch (System.Exception ex)
|
{
|
throw ex;
|
}
|
}
|
}
|
}
|
}
|
}
|