该字段太小,无法接受您尝试添加的数据量。 有没有人从ADO.NET得到这个错误?

从数据集更新Excel文件似乎工作正常。 但是,如果我有超过255个字符的文本,那么我会得到上面的错误。 有没有其他人得到这样的错误? 你如何解决它? 我一直在这个工作了几个小时,我没有得到任何地方。 我试图搞乱连接string和更改registry设置,但没有运气。

这不是一个简单的解决办法。 事实上,我不得不使用黑客。

我试图插入一些长度为262个字符的Excel字段中的一些文本,并得到这个错误: 该字段太小,无法接受您尝试添加的数据量。 尝试插入或粘贴更less的数据。

这个技巧/黑客的工作很容易,因为我已经创build了Excel文档,它是空的(即除了标题没有行)。 所以在Excel中,我将262个字符(可以是255以上的任何字符)的文本粘贴到第一行可以接收大文本的单元格中。 之后,我运行ADO.NET(通过VB.NET),并通过数据集(ds.Update)将数据推送到Excel,所有数据都很好地传递,没有错误。

除非有人知道在Excel或代码隐藏的方式来强制Excel单元格成为所谓的备忘录字段,这是唯一的办法。 我试图用registry的伎俩,但它并没有为我工作。

我用OleDb和dotnetN00b的提示,我设法做到这一点。

string con = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\temp\\test.xls;Extended Properties=""Excel 8.0;HDR=YES;"""); var cnn = new OleDbConnection(con); cnn.Open(); string createCom = "CREATE TABLE [Sheet1] ( [A] string, [B] Memo);"; string insertCom = "INSERT INTO [Sheet1] VALUES('This can be max 255', 'This one can be realy looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong!');"; OleDbCommand cmd = new OleDbCommand(createCom, cnn); cmd.ExecuteNonQuery(); cmd = new OleDbCommand(insertCom, cnn); cmd.ExecuteNonQuery(); cnn.Close();