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); //} /**/ /// /// SqlBulkCopy /// /// 目标连接字符 /// 目标表 /// 源数据 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; } } } } } }