欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SqlDataReader指定轉(zhuǎn)換無效的解決方法

 更新時間:2017年06月09日 10:38:18   作者:張追逐  
這篇文章主要為大家詳細介紹了SqlDataReader指定轉(zhuǎn)換無效的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

SqlDataReader指定轉(zhuǎn)換無效的解決方法,具體內(nèi)容如下

//獲取最新顯示順序數(shù)據(jù)
      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下是否有數(shù)據(jù)
      {
        //讀取賦值
        try
        {
          showOrder = dataReader.GetInt32(0);
          
        }
        catch (Exception ex)
        {

          HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(ex.Message) };
          return result;
        }
        
      }
dataReader.Close();//關閉

SqlDataReader 自帶的GetInt32(以及其他的比如GerString等)方法

只是獲取數(shù)據(jù)庫中對應數(shù)據(jù)類型的列,并不具有類型轉(zhuǎn)化的功能,所以不能這樣使用

解決方法有兩種

1.如需要返回int類型的,那么數(shù)據(jù)庫中的字段就定義為int類型,則用GetInt32可行
2.若數(shù)據(jù)庫中定義的不是int類型,又想要返回int類型的,那么就先用數(shù)據(jù)庫中對應的類型Get出來,然后轉(zhuǎn)化
如int.Parse(selectunitidread.GetString(0))
如果不需要返回int類型的,就如你上面寫的到的,最后是又轉(zhuǎn)化為了string
而數(shù)據(jù)庫中的類型就是與string對應的varchar,那么你可以直接給下面的賦值
如:rmoutbackinfo.UnitId = selectunitidread.GetString(0)
而不用再轉(zhuǎn)化為string 

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論