将数据从excel导入sql返回NULL

Posted

技术标签:

【中文标题】将数据从excel导入sql返回NULL【英文标题】:Import data from excel to sql returning NULL 【发布时间】:2015-03-11 13:19:32 【问题描述】:

我正在尝试将数据从 Excel 工作表导入到我的数据库中,但是某些数据将作为 NULL 导入。其中包括

1) 包含“-”的东西。例如。 12345678-9

2) A number that has a warning on excel that says number stored as text, and when the option convert this to number, it goes from 811123123121014259 to 8.96503E+17

我正在通过 ASP.NET 导入数据

using (OleDbConnection excelConnection = new OleDbConnection(conStr))

    //Create OleDbCommand to fetch data from Excel 
    using (OleDbCommand cmd = new OleDbCommand("SELECT * From [" + SheetName + "]", excelConnection))
    
        excelConnection.Open();
        using (OleDbDataReader dReader = cmd.ExecuteReader())
        
            using (SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection))
            
                //Give your Destination table name 
                sqlBulk.DestinationTableName = "TableName";
                sqlBulk.WriteToServer(dReader);
            
        
        excelConnection.Close();
    

【问题讨论】:

【参考方案1】:

你必须改变你的连接字符串。

当您想将文件中的所有数据都视为文本时使用此选项,覆盖 Excels 列类型“常规”以猜测列中的数据类型。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";

更多信息here.

【讨论】:

仍然导入为NULL @BloopieBloops 再次检查您的连接字符串。发生这种情况时,这是与连接字符串相关的问题。 现在,我正在使用这个:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=0;Extended Properties='Excel 12.0 Xml;HDR=1;IMEX= 1

以上是关于将数据从excel导入sql返回NULL的主要内容,如果未能解决你的问题,请参考以下文章

尝试将数据从 Excel 导入 SQL 表时出错

将数据从 Excel 文件导入 SQL 表而不重复?

使用导入导出向导将数据从 Excel 导入 Sql Server 时,如何更改列的默认 varchar 255?

从 Azure Excel blob 文件将数据导入 SQL Server

将数据从 Excel 复制到 SQL 数据库 VB.NET

从 Excel 到 SQL Server 的数据导入无法导入所有数据