永发信息网

C#中的指定转换无效

答案:5  悬赏:20  手机版
解决时间 2021-03-25 05:52
  • 提问者网友:太高姿态
  • 2021-03-25 01:02
C#中的指定转换无效
最佳答案
  • 五星知识达人网友:冷風如刀
  • 2021-03-25 02:41
SqlDataReader 自带的GetInt32(以及其他的比如GerString等)方法
只是获取数据库中对应数据类型的列,并不具有类型转化的功能,所以不能这样使用

解决方法有两种
1.如需要返回int类型的,那么数据库中的字段就定义为int类型,则用GetInt32可行
2.若数据库中定义的不是int类型,又想要返回int类型的,那么就先用数据库中对应的类型Get出来,然后转化
如int.Parse(selectunitidread.GetString(0))
如果不需要返回int类型的,就如你上面写的到的,最后是又转化为了string
而数据库中的类型就是与string对应的varchar,那么你可以直接给下面的赋值
如:rmoutbackinfo.UnitId = selectunitidread.GetString(0)
而不用再转化为string
全部回答
  • 1楼网友:行路难
  • 2021-03-25 05:08
int midunitid = Convert.ToInt32(selectunitidread[0]);//单据号
rmoutbackinfo.UnitId = Convert.ToString(midunitid);
或者
rmoutbackinfo.UnitId = selectunitidread[0].ToString();//单据号
  • 2楼网友:想偏头吻你
  • 2021-03-25 03:51
while下面的代码改成下面的再试下。。
rmoutbackinfo.UnitId=selectunitidread[0].ToString();
  • 3楼网友:青尢
  • 2021-03-25 03:16
int midunitid = selectunitidread.GetInt32(0);//单据号
rmoutbackinfo.UnitId = Convert.ToString(midunitid);
改写成
int midunitid = selectunitidread[0].ToInt32();//单据号
  • 4楼网友:蕴藏春秋
  • 2021-03-25 03:09
首先, 看你的GetInt32(0)是否是空,
其次,如果不是空,看看你的单据号中是否存在字母或者其他.
希望对你有帮助.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯