首页后端开发ASP.NET完美解决SqlDataReader指定转换无效

完美解决SqlDataReader指定转换无效

时间2024-01-30 16:01:03发布访客分类ASP.NET浏览574
导读:收集整理的这篇文章主要介绍了完美解决SqlDataReader指定转换无效,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要为大家详细介绍了SQLDataReader指定转换无效的解决方法,具有一定的参考价值,感兴趣的小伙伴们可...
收集整理的这篇文章主要介绍了完美解决SqlDataReader指定转换无效,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要为大家详细介绍了SQLDataReader指定转换无效的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

SqlDataReader指定转换无效的解决方法,具体内容如下


//获取最新显示顺序数据      string str = string.Format(@"if exists(select ShowOrder From GIS_FuncDefaultLayer where GISFuncId = {
0}
)                           select max(ShowOrder) as ShowOrder from GIS_FuncDefaultLayer where GISFuncId ={
0}
                               else select '0' as ShowOrder", GISFuncId);
           IDataReader dataReader = helPEr.ExecuteReader(CommandType.Text, str);
      if (dataReader.Read())//判断当前功能Id下是否有数据      {
        //读取赋值        try        {
              showOrder = dataReader.GetInt32(0);
                  }
        catch (Exception ex)        {
          HttPResponSEMessage result = new HttpResponseMessage {
 Content = new StringContent(ex.Message) }
    ;
              return result;
        }
              }
    dataReader.Close();
    //关闭

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


//解决showOrder=int.Parse(dataReader.GetString(0));
    

以上就是完美解决SqlDataReader指定转换无效的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

转换

若转载请注明出处: 完美解决SqlDataReader指定转换无效
本文地址: https://pptw.com/jishu/592733.html
有关MVC异常情况的相关处理 Asp.Net--详解Core的安装和介绍

游客 回复需填写必要信息