首页 新闻 会员 周边 捐助

关于使用ADO.net操作Excel文件的问题。

0
悬赏园豆:10 [已解决问题] 解决于 2008-06-07 09:18
<P>使用&nbsp;&nbsp;update [基本信息$A5:B30] set [F2] ="jyk" where [F1] = "联系人"</P> <P>这样的语句来向Excel文件里面写数据,如果 [F2]="123" 就是往Excel里面写数字的话,那么就可以写进去,但是如果是写入文字( [F2] ="jyk")的话就会出错,错误提示是:标准表达式中数据类型不匹配。</P> <P>&nbsp;</P>
问题补充: 有的工作簿(单元格)好用,有的就不好用。没发现有什么不同的地方呀。 加上之后,连数字都加不进去了,出错信息: 操作必须使用一个可更新的查询
金色海洋(jyk)的主页 金色海洋(jyk) | 菜鸟二级 | 园豆:290
提问于:2008-06-06 09:57
< >
分享
最佳答案
0
可以通过 Extended Properties 中指定 IMEX=1 请参照: http://www.it55.com/html/xueyuan/chengxukaifa/_NETjiaocheng/20071120/260638_2.html
玉开 | 大侠五级 |园豆:8822 | 2008-06-06 10:07
其他回答(2)
1
楼主说的情况原因是在Excel中可以设置某列所存储的数据类型,而你所插入的Excel中F字段是数字类型的,而非文本类型的。 根据上面所述,你的Excel中F列所设定的数据类型肯定是数值类型的(查看Excel中列的数据类型方法:左键单击F列列头选中F列,在F列上右击选择“设置单元格格式”,再出来的窗口中选择“数字”选项卡)。你插入[F2]="123"是可以从字符串类型隐式强转为整型后插入Excel的F2中,而你插入[F2]="jyk"是不能从字符串类型隐式强转为整型后插入Excel的F2中,所以会报标准表达式中数据类型不匹配。 解决方法: 1、如果此Excel是人手工或其他外部程序建立和并设置的,那么请按照查看数据类型的方法,进入到“数字”选项卡,更改选中列的数据类型为“文本”,保存Excel后再使用[F2]="123"或[F2]="jyk"就都能插入了。 2、如果此Excel是你自己程序所建立的,请在建立时设置好每列的数据类型。 最后祝您好运……
刚刚 | 园豆:3151 (老鸟四级) | 2008-06-06 10:54
0
写excel单元格和写数据库字段差不多,数字可以,字符就不行,说明字段类型的问题。 “操作必须使用一个可更新的查询”,首先当前用户要具备对该文件的“写”权限,另外,当你写的时候,要保证没有别的程序在使用这个excel文件。
致博腾远 | 园豆:1389 (小虾三级) | 2008-06-06 16:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册