C#中如何将DataTable保存到数据库?

C#中,比如有个DataTbaleA,几万行数据,怎么样快速的把DataTbaleA保存到数据库中,并且数据库创建好一个DataTbaleA名字的表,用INSERT需要一... C#中,比如有个DataTbaleA,几万行数据,怎么样快速的把DataTbaleA保存到数据库中,并且数据库创建好一个DataTbaleA名字的表,用INSERT需要一条一条保存,效率太慢。
额。但是如果我是Access数据库,用不了SqlBulkCopy ,怎么办呢?
展开
 我来答
512578845
2014-03-03 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:122
采纳率:100%
帮助的人:124万
展开全部
sqlbulkcopy 神级 数据拷贝
System.Data.SqlClient 命名空间
亲测,100万 数据 20字段 5000毫秒 (5秒)
public void InsertDatatable(Datatable datatableA)
{
SqlConnection destinationConnection = new SqlConnection(connectionString) //创建一个数据库连接;

destinationConnection.Open();

SqlBulkCopy bulkCopy =new SqlBulkCopy(destinationConnection)// 实例化 sqlbulkcopy;

bulkCopy.DestinationTableName ="dbo.DatatableA";// 目标表名称/

///bulkCopy.ColumnMappings.Add("ProductID", "ProductID");//映射 目标和源的字段 如果字段都相同,可不写,会自动匹配相同字段插入
///bulkCopy.ColumnMappings.Add("ProductName", "Name");//映射 目标和源的字段 如果字段都相同,可不写,会自动匹配相同字段插入
bulkCopy.WriteToServer(datatableA);//将传入的数据写到数据库;

}
目标表名 如果在数据库中不存在, 二十需要插入数据时再生成的话,就需要在执行这个 插入之前,先建一张表
string sql="create table xxxxxxx( filed1 varchar(100),........ )" 建好之后再 插入数据 就可以了 。
追问
额。但是如果我是Access数据库,用不了SqlBulkCopy ,怎么办呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长倚阴书南
2019-07-03 · TA获得超过1200个赞
知道小有建树答主
回答量:1885
采纳率:96%
帮助的人:10.6万
展开全部
引用
10

charles_y
的回复:是sql
server
吗?bulkcopy
插入到一个临时表然后用Merge
把临时表合并到表中。合并可以判断是插入还是修改,具体参考Merge语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
殳畅饶阳炎
2019-06-14 · TA获得超过1164个赞
知道小有建树答主
回答量:1860
采纳率:100%
帮助的人:8.7万
展开全部
引用
2

wjq
的回复:创建零时表Blukcopy,把dt导入零时表select
insert和原表关联后再插入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2014-03-03 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7860万
展开全部
更多追问追答
追问
额。但是如果我是Access数据库,用不了SqlBulkCopy ,怎么办呢?
追答
其实一条一条insert也效率不低的,如果你的代码是每次插入创建一个新连接那就效率低了(你的是不是?)。可以参考下面的代码
http://stackoverflow.com/questions/7070011/writing-large-number-of-records-bulk-insert-to-access-in-net-c
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式