求助:EXCEL存数据单元格数据长度不能大于256字节?

AzureFancy 2006-05-15 05:40:21
采用数据库连接方式
sProviderStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + EXCEL_FILENAME + ";Extended Properties=Excel 8.0" ;

cmdExcel.Parameters.Add("@路由",OleDbType.LongVarChar,0,"路由");
...全文
692 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶虎 2006-05-16
  • 打赏
  • 举报
回复
这个没有试过,记得给分老兄!
AzureFancy 2006-05-16
  • 打赏
  • 举报
回复
谢谢yehutxt!
AzureFancy 2006-05-15
  • 打赏
  • 举报
回复
兄弟,确实是这样!但如果用EXCEL的库函数填写单元格会出现这种情况吗?你试了没?
叶虎 2006-05-15
  • 打赏
  • 举报
回复
兄弟,告诉你,已经找到问题原因何在,用Ado读取数据时,对于超过255个字符的单元格,必须在前1-8列,大于255个字符的单元格第一行数据不能小于255个字符,否则系统就不能识别。
AzureFancy 2006-05-15
  • 打赏
  • 举报
回复
Data truncated to 255 characters with Excel ODBC driver
http://support.microsoft.com/kb/189897/EN-US/
叶虎 2006-05-15
  • 打赏
  • 举报
回复
就一个吧,你看看http://support.microsoft.com/kb/189897/EN-US/
这篇文章,这里有详细的说明,如果是单机版,这中方案可以
AzureFancy 2006-05-15
  • 打赏
  • 举报
回复
我是单机系统!但改了还需要是不行,TypeGuessRows是注册表哪个键中的落,有几个TypeGuessRows键?
叶虎 2006-05-15
  • 打赏
  • 举报
回复
老兄,确实通过修改注册表TypeGuessRows=16可以解决这个问题,但是这个有点麻烦,要去修改web服务器上的这个设置,我这个比较麻烦,不可能去为每个客户修改这个,只能从程序中来解决,不知道你的应用是什么情况,如果就一套系统,则这种方式还是可取的
叶虎 2006-05-15
  • 打赏
  • 举报
回复
看看这篇文章,http://support.microsoft.com/kb/189897/EN-US/

但这个不是我想要的解决办法,我试过了,好像不行,因为我以前导入excel数据都没有
问题,现在才发现,不知是什么原因
AzureFancy 2006-05-15
  • 打赏
  • 举报
回复
帮忙顶下贴!
AzureFancy 2006-05-15
  • 打赏
  • 举报
回复
呵呵!兄弟,想办法和Bill Gate通个电话!我再在网上找一下有没有解决方法,找到了就告诉你!
叶虎 2006-05-15
  • 打赏
  • 举报
回复
我以前用没有问题,但现在换了一种方法,就出现这种问题

System.Data.OleDb.OleDbConnection oleDbConnection = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+docRoot+"\\"+strFileName+";Extended Properties=Excel 8.0;");
oleDbConnection.Open();
DataTable schemaTable = oleDbConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);

//DataTable schemaTable = oleDbConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] {null, null, null, "TABLE"});
DataSet ds = new DataSet();
for(int i = 0 ; i < schemaTable.Rows.Count ; i ++){
string sql = "SELECT * FROM [" + schemaTable.Rows[i]["TABLE_NAME"].ToString() +"]";
System.Data.OleDb.OleDbDataAdapter ada = new System.Data.OleDb.OleDbDataAdapter(sql, oleDbConnection);
ada.Fill(ds, "[" + schemaTable.Rows[i]["TABLE_NAME"].ToString() +"]");
}
叶虎 2006-05-15
  • 打赏
  • 举报
回复
我也头痛死了,现在还没找到问题出在什么地方,不知道是不是连接字符串里还有什么特殊设置
AzureFancy 2006-05-15
  • 打赏
  • 举报
回复
yehutxt:现在打算怎么办?
AzureFancy 2006-05-15
  • 打赏
  • 举报
回复
yehutxt:同志!现在找到什么门路没?一定要用EXCEL的类库来操作吗?
叶虎 2006-05-15
  • 打赏
  • 举报
回复
老兄,我今天也遇到你同样的问题,通过这种方式导入数据,发现只能导入255个字符,真是奇怪!!

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧