当前位置: 首页 > news >正文

ASP.NET中值类型与列类型不匹配的问题

源代码如下:       
      
                                                 public      static      DataTable      ConvertDataReaderToDataTable(SqlDataReader      dataReader)       
                                                 {       
                                                                         DataTable      datatable      =      new      DataTable();       
                                                                    &nb[FS:Page]sp;    DataTable      schemaTable      =      dataReader.GetSchemaTable();       
                                                                         //动态添加列       
                                                                         try       
                                                                         {       
                                                          &n[FS:Page]bsp;                   
                                                                                                 foreach(DataRow      myRow      in      schemaTable.Rows)       
                                                                                                 {       
                                                                                    &[FS:Page]nbsp;                                    DataColumn      myDataColumn      =      new      DataColumn();       
                                                                                                                         myDataColumn.DataType                          =      myRow.GetType();       
                                                                                                  &nbs[FS:Page]p;                      myDataColumn.ColumnName      =      myRow[0].ToString();       
                                                                                                                         datatable.Columns.Add(myDataColumn);       
                                                                                                 }       
                                                 &nbs[FS:Page]p;                                               //添加数据       
                                                                                                 while(dataReader.Read())       
                                                                                                 {       
                                                                   &n[FS:Page]bsp;                                                     DataRow      myDataRow      =      datatable.NewRow();       
                                                                                                                         for(int      i=0;i<schemaTable.Rows.Count;i++)       
                                                                                                                [FS:Page];         {                                                                                                       
                                                   myDataRow[i]      =      dataReader[i].ToString();   
                                                   //--------------------------------------------这里是出错位置!!!   
                                                                                        &nb[FS:Page]sp;                                }       
                                                                                                                         datatable.Rows.Add(myDataRow);       
                                                                                                                         myDataRow      =      null;       
                     &n[FS:Page]bsp;                                                                           }       
                                                                                                 schemaTable      =      null;       
                                                                                                 dataReader.Close();       
                           &nbs[FS:Page]p;                                                                     return      datatable;       
                                                                         }       
                                                                         catch(Exception      ex)       
                                                                         {       
  &nbs[FS:Page]p;                                                                                              Error.Log(ex.ToString());       
                                                                                                 throw      new      Exception("转换出错出错!",ex);       
                                                                         }       
                            [FS:Page];                                                  
                                                 }       
      
   上述代码在      .Net      1.1环境下没有问题,升级到.Net      2.0后,运行时报错:       
      
   值类型与列类型不匹配           
   说明:      执行当前      Web      请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。           
      
   异常详细信息:      System.ArgumentException:      值类型与列类型不匹配       
      
   源错误:           
      
      
   行      38:                                                      &nbs[FS:Page]p;                                                                       for(int      i=0;i<schemaTable.Rows.Count;i++)       
   行      39:                                                                                                                              {                                                                                                       
   行    &[FS:Page]nbsp; 40:                                                                                                      myDataRow[i]      =      dataReader[i].ToString();       
   行      41:                                                                                                                              }       
   行      42:                                                          [FS:Page]                                                                    datatable.Rows.Add(myDataRow);       
          
      
   源文件:      E:\inetpub\wwwroot\Components\Tool.cs                  行:      40           
      
   堆栈跟踪:           
      
      
   [ArgumentException:      值类型与列类型不匹配]       
             System.Data.Common.ObjectStorage.Set(Int32      recordNo,      Object      value)      +955       
             System.Data.DataColumn.set_Item(Int32      record,      Object      value)      +37       
      
   [ArgumentException:      值类型与列类型不匹配不能在      DocID      列中存储   &nb[FS:Page]sp;  <65>。所需类型是      DataRow。]       
             System.Data.DataColumn.set_Item(Int32      record,      Object      value)      +72       
             System.Data.DataRow.set_Item(DataColumn      column,      Object      value)      +194       
             System.Data.DataRow.set_Item(Int32      columnIndex,      Object      value)      +25       
             UDS.Components.Tools.ConvertDataReaderToDataTable(SqlDataReader      dataReader)      in      E:\inetpub\wwwroot\Components\Tool.cs:40       
      
   [Exception:      转换出错出错!]       
             UDS.Components.Tools.ConvertDataReaderToDataTable(SqlDataReader      dataReader)      in      E:\inetpub\wwwroot\Components\Tool.cs:52       
             UDS.SubModule.UnitiveDocument.Desktop.Bangding()      in      E:\

转载于:https://www.cnblogs.com/9who/archive/2008/07/28/1254398.html

相关文章:

  • 【PHP】日文全角转半角半角判断
  • 硬盘知识
  • 医药公司网站建设方案
  • 工作需要,了解了下HSRP.
  • 【转】华为Java笔试题
  • 2008年7月51CTO.com十大热点文章排行榜
  • Asp.net中防止用户多次登录的方法
  • WinInet学习笔记(一)WinInet简介
  • java解析芯片
  • Googlebot(谷歌机器人)深入了解
  • 长尾理论
  • 备份和还原Windows Server 2008只读域控制器(4)
  • 老板性格决定公司文化
  • .net知识和学习方法系列(二十一)CLR-枚举
  • 小白三下杭州
  • “大数据应用场景”之隔壁老王(连载四)
  • 【React系列】如何构建React应用程序
  • C++11: atomic 头文件
  • Invalidate和postInvalidate的区别
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • select2 取值 遍历 设置默认值
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 基于游标的分页接口实现
  • 简单易用的leetcode开发测试工具(npm)
  • 什么是Javascript函数节流?
  • 使用权重正则化较少模型过拟合
  • 说说动画卡顿的解决方案
  • 微信开源mars源码分析1—上层samples分析
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​第20课 在Android Native开发中加入新的C++类
  • "无招胜有招"nbsp;史上最全的互…
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $NOIp2018$劝退记
  • (03)光刻——半导体电路的绘制
  • (1)常见O(n^2)排序算法解析
  • (ZT)一个美国文科博士的YardLife
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (转)ABI是什么
  • .Net core 6.0 升8.0
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .Net转前端开发-启航篇,如何定制博客园主题
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /etc/fstab和/etc/mtab的区别
  • /var/log/cvslog 太大
  • @NestedConfigurationProperty 注解用法
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [20181219]script使用小技巧.txt
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [AutoSar]BSW_Com02 PDU详解
  • [C和指针].(美)Kenneth.A.Reek(ED2000.COM)pdf
  • [github配置] 远程访问仓库以及问题解决