.net mysql查询数据类型_C#获取数据表类型的问题

部分程序为:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png代码

SqlCommand cmd=newSqlCommand("select * from table", conn);

conn.Open();//打开网络数据库连接SqlDataAdapter sda=newSqlDataAdapter(cmd);//用SqlDataAdapter执行cmdDataTable dtt=newDataTable();//填充数据表元数据信息sda.FillSchema(dtt, SchemaType.Mapped);//这里用FillSchema方法,从网络数据库获取数据表元数据信息for(inti=0; i

{stringcolumnName="";stringtype="";stringLenght="";

columnName=dtt.Columns[i].ColumnName;

type=dtt.Columns[i].DataType.Name;

Lenght=dtt.Columns[i].MaxLength.ToString();switch(type.ToLower())

{case"string":

createTableSql=createTableSql+columnName+"[varchar] ("+Lenght+"),";break;case"int32":

createTableSql=createTableSql+columnName+"[int],";break;case"int64":

createTableSql=createTableSql+columnName+"[bigint],";break;case"int16":

createTableSql=createTableSql+columnName+"[smallint],";break;case"object":

createTableSql=createTableSql+columnName+"[binary],";break;case"boolean":

createTableSql=createTableSql+columnName+"[bit],";break;case"datetime":

createTableSql=createTableSql+columnName+"[datetime],";break;case"decimal":

createTableSql=createTableSql+columnName+"[decimal],";break;case"double":

createTableSql=createTableSql+columnName+"[float],";break;case"single":

createTableSql=createTableSql+columnName+"[real],";break;case"byte":

createTableSql=createTableSql+columnName+"[tinyint],";break;case"byte[]":

createTableSql=createTableSql+columnName+"[image],";break;default:

createTableSql=createTableSql+columnName+"[varchar](255),";break;

}

}

我这里得到的type类型是int32、Byte[],但是在数据库中的类型是int、Image。我用什么方法可以得到“Image”这个字符串,并在程序中输出啊?

用上述方法对一些类型无法处理,比如数据库中money、decimal类型在c#中得到的type都是decimal,无法还原为money类型。(如果可以转化的话,提出来同样感谢!)

补充说明:程序的作用是获取网络数据库上查询出来字段的元数据(名称、类型、长度等),然后在本地建立一个具有相同类型的数据表,并导入查询的数据,导入的方法为:

SqlDataReader drdata = cmd.ExecuteReader();     //用SqlDataReader再次执行cmd

SqlBulkCopy bulk = new SqlBulkCopy(NewConn);    //创建本地的SqlBulkCopy

bulk.DestinationTableName = "[" + temptable + "]";

bulk.WriteToServer(drdata);     //把网络数据表的数据COPY到本地临时数据表

因为SqlBulkCopy要求导入的目标表的结构要和原表结构完全相同,所以要得到原表字段类型。

如果哪位大侠能用其他方式实现同样操作,同样感谢!(本人第一次做此类型功能,方法如果过于复杂,请提出建议!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值