2013-07-28 56 views
0

我有XLSX文件,並且需要從C#應用程序的該文件中的idProduct更新說明字段。使用長字符串更新Excel字段

要連接我使用:

 string connectionString = string.Format(
      @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", 
      tbFileXLS.Text.Trim()); 

     OleDbConnection connection = new OleDbConnection(connectionString); 

     string sql = string.Format(
      @"UPDATE [Sheet1$] SET [Description] = '{0}' WHERE [ProductID] = '{1}'", 
      htmlDescription.Replace("'", "''"), 
      idProduct 
      ); 

但是當我嘗試運行查詢

 OleDbCommand command = new OleDbCommand(sql, connection); 
     connection.Open(); 
     int count = command.ExecuteNonQuery(); 
     connection.Close(); 

它拋出一個錯誤:

The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.

誰知道如何解決這個問題?

謝謝。

+0

您是否嘗試插入較少的數據? –

+0

我不插入,我更新數據,如果我嘗試短字符串像「測試字符串」它成功更新 – ihorko

+0

如果它適用於一個短的「測試字符串」,那麼說明您要更新多長時間?它是否包含任何不尋常的字符?在Excel 2007中,單元格可以包含32,767個字符。 –

回答

1

沒有辦法通過OleDB來做到這一點。

我使用Microsoft.Office.Interop.Excel;而是在循環中找到記錄並更新Cell [i,j] = description。它有點慢,但像一個魅力。謝謝!

相關問題