环境:装了个VS2010英文版。打开之前的项目,运行,能够正常访问oracle数据库。
现象:新建一个项目,然后add data source,进入向导,输入数据源、用户名、密码,测试能连接上oracle,然后下一步中可以看到表格,选了一个表,点下一步就弹出了这个错误消息“An error occurred while creating then new data source: Could not get type information for 'solutionname.DataSet1'”;
后来验证发现,如果在向导中选择的是oledb而不是oracleclient做数据提供方的话,是没有问题的。
解决办法:在解决方案浏览器中该项目上点击右键,选择添加引用,把c盘下.net framework2.0中的System.Data.OracleClient.dll添加到项目引用中。之后再使用oracleclient做数据提供方也能建立数据源了。
在msdn上查看了关于这个OracleClient的介绍,OracleClient在未来的版本中将被弃用。难道这就是默认(不手动添加对其的引用)时,VS2010在数据源建立向导中选oracleclient做数据提供方就报错的原因?
另外对于这个问题,微软官网上有一些讨论,主要是说可能是项目路径有空格或怪字符,或者是表中的列采用的保留关键字。我的项目中都不存在这些问题。对于路径中的怪字符,确实会影响对oracle数据库的访问,得留意诸如' ( x86 ) ' 类似的路径。