2009-12-21 55 views
1

插入我有這樣的代碼:並不是所有的數據從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列插入數據 - 我得到空的數據,爲什麼?什麼可能是錯誤的?

感謝的提前

回答

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

相關問題