首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DataReader.GetFieldType返回null

DataReader.GetFieldType返回null
EN

Stack Overflow用户
提问于 2011-07-04 17:33:55
回答 6查看 24.7K关注 0票数 20

在我的数据库表布局中,有一列的类型是hierarchyid (列index=4)。在尝试设置新环境(从XEN服务器创建的虚拟web服务器),然后运行站点时,我遇到了这个问题:

异常消息: DataReader.GetFieldType(4)返回null。异常数据: System.Collections.ListDictionaryInternal

我做了一些搜索,发现已经有一些关于它的主题(比如在MSDN上)。

但是,即使我添加了C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Types.dll库,看起来structure SqlHierarchyId中的db类型也无法识别。

"Exception at DataReader.GetFieldType(4) returned“仍被抛出。

注意:如果我在环境(Windows Server2008 RC2)上安装VS2010中的C#包,这个问题就会解决,但我的老板不接受,因为这只是一个简单的web服务器。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-08-04 13:25:41

从项目中引用Microsoft.SQLServer.Types dll,对于引用,请在引用的属性中将其设置为“复制本地”。这将在您部署时将该DLL与网站打包在一起。那么你不需要在你的web机器上安装所有的SQL Server来使用SQL Server数据类型。我为我的网站这样做是因为它使用了geography数据类型的列,并且我得到了相同的错误。

票数 24
EN

Stack Overflow用户

发布于 2018-04-19 19:49:33

我试图通过将Microsoft.SqlServer.Types NuGet包添加到我的项目中来解决此问题,但仅此一项并不能解决问题。我还必须将以下内容添加到项目App.config的<assemblyBinding>元素中:

代码语言:javascript
运行
复制
<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>
票数 19
EN

Stack Overflow用户

发布于 2017-03-11 22:14:12

对我有效的解决方案是在连接字符串中添加“类型系统Version=SQL Server2012”。

示例: string connectionString = "Data Source=myserver;Initial Catalog=mydatabase;User ID=sa;Password=*******;类型System Version=SQL Server2012;“;

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6569624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档