DataReader.GetFieldType(30)返回null

时间:2017-02-28 00:01:31

标签: c# asp.net .net

类型' System.InvalidOperationException'的例外情况发生在System.Data.dll中但未在用户代码中处理

其他信息:DataReader.GetFieldType(30)返回null。

我尝试了在stackoverflow上发布的所有修复程序,但似乎它对我不起作用。

我正在处理SQLServer数据库中有关地理位置的问题。我对其他数据类型没有任何问题,但是当列已经有了Geography时。它会产生错误。

我尝试将Microsoft.SqlServer.Types.dll放在bin文件夹中并在项目中引用它。发生同样的错误。

  

{     "消息":"发生了错误。",     " ExceptionMessage":" DataReader.GetFieldType(30)返回null。",     " ExceptionType":" System.InvalidOperationException",     " StackTrace":"在System.Data.ProviderBase.SchemaMapping.SetupSchemaWithKeyInfo(MissingMappingAction mappingAction,MissingSchemaAction schemaAction,Boolean gettingData,DataColumn parentChapterColumn,Object chapterValue)\ r \ n在System.Data.ProviderBase.SchemaMapping..ctor(DataAdapter适配器,DataSet数据集,DataTable数据表) ,DataReaderContainer dataReader,Boolean keyInfo,SchemaType schemaType,String sourceTableName,Boolean gettingData,DataColumn parentChapterColumn,Object parentChapterValue)\ r \ n在System.Data.Common.DataAdapter.FillMappingInternal(DataSet数据集,DataTable数据表,String srcTable,DataReaderContainer dataReader,Int32) schemaCount,DataColumn parentChapterColumn,Object parentChapterValue)\ r \ n在System.Data.Common.DataAdapter.FillMapping(DataSet数据集,DataTable datatable,String srcTable,DataReaderContainer dataReader,Int32 schemaCount,DataColumn parentChapterColumn,Object parentChapterValue)\ r \ n在系统中.Data.Common.DataAdapter.FillFromReader(DATAS et dataData,DataTable datatable,String srcTable,DataReaderContainer dataReader,Int32 startRecord,Int32 maxRecords,DataColumn parentChapterColumn,Object parentChapterValue)\ r \ n在System.Data.Common.DataAdapter.Fill(DataTable [] dataTables,IDataReader dataReader,Int32 startRecord, Int32 maxRecords)\ r \ n在System.Data.Common.LoadAdapter.FillFromReader(DataTable [] dataTables,IDataReader dataReader,Int32 startRecord,Int32 maxRecords)\ r \ n在System.Data.DataTable.Load(IDataReader reader,LoadOption loadOption) ,在Arbiter.Core.BaseHelper.ExecuteReader()\ r \ n,在Arbiter.Helpers.SqlHelper.RetrieveT \ r \ n的System.Data.DataTable.Load(IDataReader reader)\ r \ n中的,FillErrorEventHandler errorHandler)\ r \ n在GjenesisServices.Models.DataAccessLayer`1.Retrieve(String命令,Object []参数)

1 个答案:

答案 0 :(得分:-2)

我已经解决了这个问题。

Microsoft.SqlServer.Types的引用应该在GAC上

另外,将信息放在web.config

解决了我的问题