将数据从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 Server 时,如何更改列的默认 varchar 255?