原创,转载请注明出处。//author:MeBack_黯然消魂
小弟摸索了二天,终于搞定,不敢独享。
第一次使用微软的SqlBulkCopy,其实它也是调用Bulk insert的,只不过微软封装了它,不过它不能指定映射文件,常出错,会说类型不匹配。一咬牙决定自己动手做。以下是具体的操作:
第一步:使用Bcp工具先生成一个XML格式化文档,它能映射欲插入的数据与数据库的表的对应关系。有关Bcp工具的使用请在CMD中键入Bcp /?。
在CMD中敲入命令: bcp 数据库名.表名 format nul -c -x -f 生成文档的路径 -T 。 先存为:dataformat.xml。
如果你不想自己敲,我已经写好C#代码:
/// <summary>
/// 创建BulkInsert,XML格式化文件
/// </summary>
/// <param name="server">服务器名</param>
/// <param name="user">用户名</param>
/// <param name="pwd">密码</param>
/// <param name="dataBaseName">数据库名</param>
/// <param name="tableName">表名</param>
/// <param name="xmlFormatFilePath">输入文件的路径</param>
/// <returns>Boolern</returns>
public static bool BuildBulkInsertXMLFile(string server, string user, string pwd, string dataBaseName, string tableName, string xmlFormatFilePath)
{
string cmd = null;
cmd = string.Format("bcp {0}..{1} format nul -c -x -f /"{2}/" -S /"{3}/" -U /"{4}/" -P /"{5}/"", dataBaseName, tableName, xmlFormatFilePath, server, user, pwd);
TextReader tr = null;
TextWriter tw = null;
bool IsSuccess = false;
try
{
Unity.RunCommand(cmd);
&nb

本文介绍了一种方法,通过自定义C#代码配合SqlBulkCopy和BCP工具,将Excel中的大量数据转换为XML格式,并批量插入到SQL数据库中,实现了高效的数据迁移。文章详细阐述了创建XML格式文件、读取Excel数据并写入文件以及执行Bulk Insert命令的步骤。
最低0.47元/天 解锁文章
646

被折叠的 条评论
为什么被折叠?



