关于批量文本数据导入的问题

cutef1 2010-01-12 10:51:06
我用oledb访问一个文本文件,当它是普通的ASCII格式的文件时,用SqlBulkCopy可以正常导入,但是只要变成unicode格式的文本时,导入进去的就全变为NULL了,是不是连接串写的有问题,怎样访问Unicode的文本?

public void TransferData(string excelFile, string sheetName, string connectionString)
{
DataSet ds = new DataSet();
try
{
//获取全部数据

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="+ excelFile + ";" + "Extended Properties=\"text;HDR=YES;FMT=Delimited;Encoding=UNICODE;\";";

OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel = string.Format("select * from [{0}.csv]", sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
//用bcp导入数据
   using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))
   {

   bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
   bcp.BatchSize = 100;//每次传输的行数
   bcp.NotifyAfter = 100;//进度提示的行数
   bcp.DestinationTableName = sheetName;//目标表

   bcp.WriteToServer(ds.Tables[0]);
   }
   }
   catch (Exception ex)
   {
   System.Windows.Forms.MessageBox.Show(ex.Message);
   }
   }
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuchyx2007 2010-01-13
  • 打赏
  • 举报
回复
关注,帮顶
kensouterry 2010-01-13
  • 打赏
  • 举报
回复
楼主好强大!
cutef1 2010-01-13
  • 打赏
  • 举报
回复
搞定了,连接串改成这个就OK了。

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=\"text;HDR=YES;CharacterSet=UNICODE;FMT=Delimited;\"";
元宇宙之家 2010-01-13
  • 打赏
  • 举报
回复
加个IMEX=1;试试

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="+ excelFile + ";" + "Extended Properties=\"text;HDR=YES;IMEX=1;FMT=Delimited;Encoding=UNICODE;\";";
sito_hongta 2010-01-13
  • 打赏
  • 举报
回复
關注
xhnqchchfeng 2010-01-13
  • 打赏
  • 举报
回复
帮顶
ILOVE_ASPNET 2010-01-13
  • 打赏
  • 举报
回复
LZ 强大呀 学习学习。。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧