快速插入大量数据的asp.net代码(Sqlserver)
在数据世界的洪流中,我们经常需要将大量数据从一处搬运到另一处。当我们面对的是庞大的数据量,且目标数据库只能是Sqlserver时,如何使用ADO进行高效的数据迁移呢?以下是一个生动的实例。
示例代码如下:
```csharp
using System.Data;
using System.Data.SqlClient;
// 定义连接字符串,指向目标Sqlserver数据库
string connectionString = "Data Source=HG-J3EJJ9LSW5PY;Initial Catalog=Test;User ID=sa;Password=hg";
// 模拟从其他数据库获取的数据,这里仅为示例,实际中需根据实际情况获取
DataTable dataTable = new DataTable();
dataTable.Columns.Add("ColumnA"); // 确保列名与数据库中的对应
for (int i = 0; i < 100000; i++)
{
string passportKey = Guid.NewGuid().ToString(); // 生成唯一标识作为示例数据
DataRow dataRow = dataTable.NewRow();
dataRow["ColumnA"] = passportKey; // 根据数据库表结构填充数据
dataTable.Rows.Add(dataRow);
}
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
sqlConnection.Open();
SqlTransaction sqltran = sqlConnection.BeginTransaction(); // 可选:使用事务确保数据完整性
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(sqlConnection, SqlBulkCopyOptions.KeepIdentity, sqltran);
sqlBulkCopy.DestinationTableName = "large"; // large为目标Sqlserver数据库中的表名
sqlBulkCopy.BatchSize = dataTable.Rows.Count; // 设置批量提交的大小,提高传输效率
if (dataTable != null && dataTable.Rows.Count != 0)
{
sqlBulkCopy.WriteToServer(dataTable); // 将数据批量写入Sqlserver数据库
}
sqlBulkCopy.Close(); // 关闭SqlBulkCopy对象
if (sqltran != null) sqltranmit(); // 提交事务(如果使用事务的话)
sqlConnection.Close(); // 关闭数据库连接
}
```
注解:
`<2>` `DataTable` 的结构需要与数据库中的表结构相同。如果 `DataTable` 的列少于数据库中的列,数据库中的那些列应有默认值设置。
`<3>` 代码中使用事务作为可选操作,用于确保数据的一致性和完整性。在实际应用中可以根据需求选择是否使用事务。
请注意,实际应用中需要根据实际情况调整代码,确保数据的准确性和完整性。
编程语言
- 快速插入大量数据的asp.net代码(Sqlserver)
- php获取指定(访客)IP所有信息(地址、邮政编码、
- PHP使用Apache的伪静态功能实现“网页404时跳转指
- Bootstrap3 多个模态对话框无法显示的解决方案
- 浅谈php数组array_change_key_case() 函数和array_chunk()函
- mysql允许外网访问以及修改mysql账号密码实操方法
- PHP中检查isset()和!empty()函数的必要性
- SQL 提权 常用命令
- PHP实现与java 通信的插件使用教程
- 去除内容中的html
- 关于大型页游后端管理系统的一点经验和个人见
- JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
- Javascript无参数和有参数类继承问题解决方法
- PHP连接MySQL数据的操作要点
- MYSQL 解锁与锁表介绍
- Vue-cli配置打包文件本地使用的教程图解