并不是所有的数据从EXCELL转换到数据库

问题描述:

插入我有这样的代码:并不是所有的数据从EXCELL转换到数据库

ConnectString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ExcelFile + ";Extended Properties=\"Excel 12.0 Xml;HDR=No\""; 
     SheetName = SheetName.Substring(0, SheetName.Length - 5); 
     OleDbConnection Connection = new OleDbConnection(); 
     Connection.ConnectionString = ConnectString; 
     try {Connection.Open();} 
     catch (Exception EX) 
     { 
      MessageBox.Show(EX.Message); 
     } 
     OleDbDataAdapter Command = new OleDbDataAdapter("SELECT * FROM [" + SheetName + "$]", Connection); 
     DataSet ExcelData = new DataSet(); 
     try {Command.Fill(ExcelData);} 
     catch (Exception EX) 
     { 
      MessageBox.Show(EX.Message); 
     } 
     finally 
     { 
      if (Connection.State != ConnectionState.Closed) 
       Connection.Close(); 
     } 

但不是所有的在第1列插入数据 - 我得到空的数据,为什么?什么可能是错误的?

感谢的提前

从Excel导入时,该列的数据类型是默认孰料基于前八行的内容。如果给定列的前8行中的值为空白,则根本不会导致列的任何数据。这可以在注册表中重写。我会建议调查这种可能性。这是一个很好的写法。

http://blog.lab49.com/archives/196

+0

是的!!!如果我从大到小排序它的工作很好 但我怎么能没有排序呢? – Gold 2009-12-21 18:01:04

+0

按照该帖子中的描述更新注册表项。这会迫使提供者在分配数据类型之前读取整个文件,因此如果您处理非常大的文件,性能可能会受到影响。 – cmsjr 2009-12-21 18:08:45

+0

我更新注册表项 - 但仍然不起作用。 也许是因为我有Windows 7? – Gold 2009-12-22 06:48:58