关于值类型与列类型不匹配,所需类型是 DataRow"的解决方案

今天,在vs2005下将SqlDataReader 转换为DataTable时,出现了 "值类型与列类型不匹配不能在
ID 列中存储 <30>。所需类型是
DataRow"的错误码,后来查了后,原来是这里的问题,查找相关资料后发现,(把蓝字部分修改成红字部分),修改成功

public static DataTable
ConvertDataReaderToDataTable(OleDbDataReader
dataReader)
       
{
           
//定义DataTable和模式
           
DataTable datatableTemp = new
DataTable();
           
DataTable schemaTable =
dataReader.GetSchemaTable();
           
try
           
{
               
//动态添加表的数据列
               
foreach (DataRow myRow in
schemaTable.Rows)
               
{
                   
DataColumn myDataColum = new DataColumn();

//myDataColum.DataType =
myRow.GetType(); 
                   
myDataColum.DataType =
System.Type.GetType("System.String"); 
                   
myDataColum.ColumnName =
myRow[0].ToString();
                   
datatableTemp.Columns.Add(myDataColum);
               
}

//添加表的数据
               
while
(dataReader.Read())
               
{
                   
DataRow myDataRow =
datatableTemp.NewRow();
                   
for (int i = 0; i < schemaTable.Rows.Count;
i++)
                   
{
                       
myDataRow[i]=
dataReader[i].ToString();
                   
}
                   
datatableTemp.Rows.Add(myDataRow);
                   
myDataRow =
null;
               
}
               
schemaTable =
null;
               
dataReader.Close();
               
return
datatableTemp;
           
}
            catch
(Exception
ex)
           
{
               
throw new Exception(ex.Message,
ex);
           
}

}

关于值类型与列类型不匹配,所需类型是 DataRow"的解决方案,布布扣,bubuko.com

时间: 2024-10-13 16:22:24

关于值类型与列类型不匹配,所需类型是 DataRow"的解决方案的相关文章

根据Excel列类型获取列的值

using System.Data; using System.IO; using System.Text; using System.Web; using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; namespace AIMSCommon { public class ExcelRender { /// <summary> /// 根据Excel列类型获取列的值 /// </summary> /// <param name=

关于odoo tree 视图 数值类型的列值 的统计

odoo的tree视同中  可以在每页的最后一列显示该页数的的某一个数值类型的列的数据总数 例如: 图示:重量就是一个数值类型的列   我们可以在 每页的最后显示该列的总数 如: 箭头所示的就是该列的总数 代码如下:在tree视图中增加: <field name="qty" sum="Qty"/> sum  就是计算该列总数的插件     可能还有计算平均数之类的,但是还没有去尝试

mysql之数据表列类型和列约束一

mysql数据表在定义列时,需要确定列的数据类型,以及列的相关属性或是说约束,那么mysql的列类型大致可分为如下: 列类型可分为如下: 1.数值类型 又分为整数和小数 2.时间和日期类型 3.字符类型 稍微有C基础的同学应该不是很陌生,这里呢我不会讲解太多,稍微解释一下就行. 整数部分 整数部分要注意的地方就是字节以及有符号和无符号的区别 我们知晓1byte=8bit 那么2的8次方就是0-255之间 有进制转换的同学应该知道了,那么有符号和无符号是指他需要1位来标识正负数,所以要减去1位,自

sqlite 的比较等运算是根据不同的值而不同的,并不是根据的字段类型,因为 sqlite 是弱类型字段

-------------------------------------------------- http://www.sqlite.com.cn/MySqlite/5/127.Html 在SQLite3.0版中,值被定义为什么类型只和值自身有关,和列没有关系,和变量也没有关系. (这有时被称作 弱类型.)所有其它的我们所使用的数据库引擎都受静态类型系统的限制,其中的所有值的类是由其所属列的属性决定的,而和值无关. 为了最大限度的增加SQLite数据库和其他数据库的兼容性,SQLite支持列

DJango一对一查询,ORM 列类型及列参数

一对一查询 表的创建 # 通过 OneToOneField 创建一对一的关系 from django.db import models # Create your models here. class StaffInfo(models.Model): name = models.CharField(max_length=32, null=True) age = models.CharField(max_length=32, null=True) class Salary(models.Model

C语言 -- printf函数参数类型和打印格式不匹配

C语言中,变量在运算或者赋值时会存在类型的自动转换.很一般的情况这里不再讨论,下面只说一下赋值和利用printf函数打印时的情况 1.赋值时的自动转换 int a = 1.5; printf("%d", a); 输出值为1  因为1.5是一个double类型,但是在赋值为a时,由于a是一个int类型,所以将小数部分舍去,a为1 2.printf函数中不涉及自动转换 他只按照固定的格式打印,如果解析失败,就输出对应格式下的0 例如: int a = 1; printf("%f&

SAP ABAP编程 在string类型A字符串中查询匹配string类型B字符串

如题,在string类型A字符串中查询匹配string类型B字符串,方法如下: DATA: a TYPE string VALUE 'ABCDEFGHIJKLNM', b TYPE string VALUE 'EFGHIJ', c TYPE string . DATA: off  TYPE i VALUE 0,   "从自己个字符开始查找 moff TYPE i, mlen TYPE i. FIND b IN SECTION OFFSET off OF a MATCH OFFSET moff &

MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】

用char(1):可以表示字符或者数字,但是不能直接计算同列的值.存储消耗1个字节 用tinyint:只能表示数字,可以直接计算,存储消耗2个字节 用bit: 只能表示0或1,不能计算,存储消耗小于等于一个字节. 总结: 如果无扩展需求,仅仅表示2值逻辑的话, Bit 绝对是首选 如果有扩展需求,以后可能多余2个值,就用 tinyint char不考虑,写代码时要带单引号,超麻烦 转: MySql数据库类型bit等与JAVA中的对应类型 2018年12月04日 16:43:58 Ming3394

Java日期格式化之将String类型的GMT,GST日期转换成Date类型

请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的.这样不得不面对将String 类型的日期