Und*_*ity 13 sql sql-server datareader
在我的数据库表布局中,有一个列类型为hierarchyid(列索引= 4).在尝试设置新环境(从XEN服务器创建的虚拟Web服务器),然后运行该站点时,我遇到了这个问题:
异常消息:DataReader.GetFieldType(4)返回null.异常数据:System.Collections.ListDictionaryInternal
我做了一些搜索,发现已经有一些话题了(比如在MSDN上).
但即使我添加了C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Types.dll库,似乎结构SqlHierarchyId中的db类型也无法识别.
"DataReader.GetFieldType(4)返回null的异常"仍然被抛出.
注意:如果我将VS2010中的C#软件包安装到环境(Windows Server 2008 RC2)上,问题将得到解决,但我的老板不接受,因为这纯粹是一个简单的Web服务器.
Pau*_*oza 20
从项目中引用Microsoft.SQLServer.Types dll,并在引用的属性中将其设置为"Copy Local".这将在部署时将该DLL与网站打包在一起.然后,您不需要在Web框上安装所有SQL Server,以便使用SQL Server数据类型.我为我的网站做了这个,因为它使用了geography数据类型列,我得到了同样的错误.
我试图通过将Microsoft.SqlServer.Types NuGet程序包添加到我的项目中来解决此问题,但仅此一项无济于事。我还必须将以下内容添加到<assemblyBinding>项目的App.config 的元素中:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
.
.
.
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>
.
.
.
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
小智 7
对我有用的解决方案是在连接字符串中添加“ Type System Version = SQL Server 2012 ”。
例如:string connectionString =“数据源= myserver;初始目录= mydatabase;用户ID = sa;密码= *******; 类型系统版本= SQL Server 2012; ”;
| 归档时间: |
|
| 查看次数: |
17855 次 |
| 最近记录: |