asp.net(c#) DataTable 快速导入数据库
来源:互联网 发布:mac系统占用多少空间 编辑:程序博客网 时间:2024/06/05 16:38
public void InsertTable(DataTable dt, string TabelName, DataColumnCollection dtColum)
{
//声明数据库连接
mycon.Open();
//声明SqlBulkCopy ,using释放非托管资源
using (SqlBulkCopy sqlBC = new SqlBulkCopy(mycon))
{
//一次批量的插入的数据量
sqlBC.BatchSize = 1000;
//超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
sqlBC.BulkCopyTimeout = 60;
{
//声明数据库连接
mycon.Open();
//声明SqlBulkCopy ,using释放非托管资源
using (SqlBulkCopy sqlBC = new SqlBulkCopy(mycon))
{
//一次批量的插入的数据量
sqlBC.BatchSize = 1000;
//超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
sqlBC.BulkCopyTimeout = 60;
//設定 NotifyAfter 属性,以便在每插入10000 条数据时,呼叫相应事件。
sqlBC.NotifyAfter = 10000;
// sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
sqlBC.NotifyAfter = 10000;
// sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
//设置要批量写入的表
sqlBC.DestinationTableName = TabelName;
sqlBC.DestinationTableName = TabelName;
//自定义的datatable和数据库的字段进行对应
//sqlBC.ColumnMappings.Add("id", "tel");
//sqlBC.ColumnMappings.Add("name", "neirong");
for (int i = 0; i < dtColum.Count; i++)
{
sqlBC.ColumnMappings.Add(dtColum[i].ColumnName.ToString(), dtColum[i].ColumnName.ToString());
}
//批量写入
sqlBC.WriteToServer(dt);
}
mycon.Dispose();
//sqlBC.ColumnMappings.Add("id", "tel");
//sqlBC.ColumnMappings.Add("name", "neirong");
for (int i = 0; i < dtColum.Count; i++)
{
sqlBC.ColumnMappings.Add(dtColum[i].ColumnName.ToString(), dtColum[i].ColumnName.ToString());
}
//批量写入
sqlBC.WriteToServer(dt);
}
mycon.Dispose();
}
//响应时事件
void OnSqlRowsCopied(object sender, SqlRowsCopiedEventArgs e)
{
// Response.Write("<br/> OK! ");
}
DataAdapter.SelectCommand用于获取数据,因此它的CommandText应该是select语句;
DataAdapter.InsertCommand用于插入数据,因此它的CommandText应该是insert语句;
DataAdapter.DeleteCommand用于删除数据,因此它的CommandText应该是delete语句;
DataAdapter.UpdateCommand用于更新数据,因此它的CommandText应该是update语句;
因此你的代码应该这样写:
SelectSQL="select * from tblName";
SqlCommand SelectCmd = new SqlCommand(SelectSQL, Con);
InsertSQL="insert into tblName (Input_Time,Location_ID) values (@Input_Time,@Location_ID)";
SqlCommand InsertCmd = new SqlCommand(InsertSQL, Con);
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Input_Time",System.Data.SqlDbType.Time));
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Location_ID",System.Data.SqlDbType.NVarChar));
SqlDataAdapter Dad = new SqlDataAdapter();
Dad.SelectCommand = SelectCmd;
Dad.InsertCommand = InsertCmd;
Dad.Update(DT);
//响应时事件
void OnSqlRowsCopied(object sender, SqlRowsCopiedEventArgs e)
{
// Response.Write("<br/> OK! ");
}
DataAdapter.SelectCommand用于获取数据,因此它的CommandText应该是select语句;
DataAdapter.InsertCommand用于插入数据,因此它的CommandText应该是insert语句;
DataAdapter.DeleteCommand用于删除数据,因此它的CommandText应该是delete语句;
DataAdapter.UpdateCommand用于更新数据,因此它的CommandText应该是update语句;
因此你的代码应该这样写:
SelectSQL="select * from tblName";
SqlCommand SelectCmd = new SqlCommand(SelectSQL, Con);
InsertSQL="insert into tblName (Input_Time,Location_ID) values (@Input_Time,@Location_ID)";
SqlCommand InsertCmd = new SqlCommand(InsertSQL, Con);
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Input_Time",System.Data.SqlDbType.Time));
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Location_ID",System.Data.SqlDbType.NVarChar));
SqlDataAdapter Dad = new SqlDataAdapter();
Dad.SelectCommand = SelectCmd;
Dad.InsertCommand = InsertCmd;
Dad.Update(DT);
- asp.net(c#) DataTable 快速导入数据库
- C# DataTable 快速导入数据库
- asp.net(C#)开发之一 dataset(datatable) 数据导入excel
- asp.net(C#)开发之一 dataset(datatable) 数据导入excel
- Asp.Net使用DataTable查询数据库数据
- 将Excel内容导入数据库(ASP.NET/C#)
- 将Excel内容导入数据库(ASP.NET/C#)
- dbf数据导入sql server数据库(asp.net C#)
- 将Excel内容导入数据库(ASP.NET/C#)
- ASP.NET数据库导入Excel
- ASP.NET Excel 导入数据库
- ASP.NET DataTable合并
- [Asp.net]DataTable排序
- asp.net通过datatable获取数据库中表名
- asp.net EXCEL数据 导入到数据库
- asp.net 实现excel导入到数据库
- ASP.NET导入Excel到数据库(SQL)
- ASP.NET导入Excel到数据库(SQL)
- (转载)在OpenGL场景中实现小地图功能
- 常用正则验证规则40条
- Smarty核心内容:Smarty基本安装与调试
- java获取win硬盘序列号等信息
- C# 运算符
- asp.net(c#) DataTable 快速导入数据库
- 按照java对象方式访问Snmp设备
- Smarty核心内容:保留变量
- oracle序列
- Smarty核心内容:变量调节器
- JAVA中自动生成图像,自定义生成图像的大小
- Android 之 AIDL 和远程 Service 调用
- Smarty核心内容:内建函数
- asp.net 中数据的批量插入和更新