有关从EXCEL中导入数据到MS SQL数据表问题,常有D字段(数据库中为文本型)导入数据时,有部分行数据导入为空,主要原因是这些行数据值为数值数据,若在前面加入小瞥点“’”就可以导入,有时间是数值型导入了,而文字或字符没有导入,请问这种问题怎样解决?代码如下://向导入表中插入数据
string ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + FileName;
string strSQL = "SELECT A,B,C,D FROM [Sheet1$]";DataSet DsExcel = new DataSet();
OleDbConnection ConnExcel = new OleDbConnection(ConnectString);
OleDbDataAdapter DaExcel = new OleDbDataAdapter(strSQL, ConnExcel);
DaExcel.Fill(DsExcel, "S");SqlDataAdapter obImportDA = new SqlDataAdapter("Select A,B,C,D From TA_PurchaseOrderImport ", obConn);
SqlCommandBuilder obImportCB = new SqlCommandBuilder(obImportDA);
obImportDA.Fill(DsExcel, "D");

解决方案 »

  1.   

    接上面代码......foreach (DataRow aRow in DsExcel.Tables["S"].Rows)
    {
        DsExcel.Tables["D"].Rows.Add(aRow.ItemArray);
    }
    obImportDA.Update(DsExcel, "D");
      

  2.   

    <param name="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=NO;IMEX=1'"/>把Extended Properties='Excel 8.0;IMEX=1'加你的字符串后边
      

  3.   

    我的导入方式是:
    先将excel转成xml文档,
    再用linq to xml和linq to sql导入到mssql
      

  4.   

    这位大哥,你的方法出错,提示“找不到可安装的ISAM”
      

  5.   

    其实最方便的就是excel复制到txt上面。。直接图形化界面上导入MSSQL 分隔符那里设置好就行了
      

  6.   

    这个说起来有点复杂,不过做起来思路简单:
    网上有一个ExcelHelper类,可以把Excel表另存XML文件。
    然后用LinqToXml分析这个XML文件,先得到每个WorkSheet,
    再分析这个WorkSheet,拆分已合并的单元格,找出有效的单元格值,
    逐个值填入DataTable,或EF实例,更新数据库。
      

  7.   


    insert into TA_PurchaseOrderImport(a,b,c,d) select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0' 
    ,'Excel 8.0;HDR=YES;DATABASE=d:\pp.xls',sheet1$)
      

  8.   

    参考:
    http://topic.csdn.net/t/20050916/01/4273875.html