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:\

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值