C#中如何实现动态的显式转换数据类型!

iampawpawcsdn 2004-12-24 02:35:38
问题是这样的:
假设变量 string x;
对应的数据库中的字段 x1 也是char型的;
用DataReader读出来后,想有个动态读取模块,
想写成类似下面的语句

x = (typeof(x))DataReader["x1"];

但是上面的写法是无法通过的,究竟该怎么写呢?
...全文
276 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
thinhunan 2004-12-25
  • 打赏
  • 举报
回复
ToString()不就行了
ET2004 2004-12-25
  • 打赏
  • 举报
回复
这样的话,传进来的参数应该使用 object,试参考一下 SqlParameter 的存储过程参数名和参数值的传递方法。
沈逸 2004-12-25
  • 打赏
  • 举报
回复
一个列子 你把你会出现的类型 都这样 定义一下 其实有的时候还是要 写点代码的 太动态了也不好
沈逸 2004-12-25
  • 打赏
  • 举报
回复
public static implicit operator DataTable(DBView dbview)//隐式的转换成DataTable
{
return dbview.m_DataTable;
}

public static explicit operator DBView(DataTable datatable)//显式转换DataTable为dbview
{
DBView pDb=new DBView();
pDb.m_DataTable=datatable;
return pDb;
}
风轻扬 2004-12-25
  • 打赏
  • 举报
回复
用swtich...case比较好,把string和int这样的类型放在前面进行匹配,这样匹配次数会少一些。
悄悄的回来了 2004-12-24
  • 打赏
  • 举报
回复
用SWITCH 或 IF 就够好了!
iampawpawcsdn 2004-12-24
  • 打赏
  • 举报
回复
Richardhu(学无止境):
我也是这样想的,写一个switch语句,但是有没有更好的办法呢?
lgg06 2004-12-24
  • 打赏
  • 举报
回复
up
Richardhu 2004-12-24
  • 打赏
  • 举报
回复
if(str1.GetType()== typeof(string))
{}
if(str1.GetType()== typeof(int))
{}
...
一个一个来做
cnhgj 2004-12-24
  • 打赏
  • 举报
回复
x = DataReader["x1"].ToString();
rustical 2004-12-24
  • 打赏
  • 举报
回复
x = CType(DataReader["x1"], string)
兔子-顾问 2004-12-24
  • 打赏
  • 举报
回复
Convert
iampawpawcsdn 2004-12-24
  • 打赏
  • 举报
回复
(x.gettype())DataReader["x1"];
这样写不行,我试过了,因为想把这个部分写成通用的。
传进来的变量名和字段名,类型都是一样的。
盗奶的夜猫 2004-12-24
  • 打赏
  • 举报
回复
(x.gettype())DataReader["x1"];
为什么要用呢??

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧