SqlDataReader 之指定轉換無效

2022-08-31 08:57:09 字數 1150 閱讀 9097

獲取最新顯示順序資料

string str = string.format(@"

if exists(select showorder from gis_funcdefaultlayer where gisfuncid = )

select max(showorder) as showorder from gis_funcdefaultlayer where gisfuncid =

else select '0' as showorder

", gisfuncid);

idatareader datareader =helper.executereader(commandtype.text, str);

if (datareader.read())//

判斷當前功能id下是否有資料

catch

(exception ex)

;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和DataSet的選擇

幾乎在每次面試的時候都會被問道這個問題。使用.net開發當中讀取資料應該採用sqldatareader 還是dataset以及對這兩者的理解。先來談談我本人對這兩者的理解 1 sqldatareader 提供一種從sql server 資料庫讀取行的只進流的方式。無法繼承此類。白話解釋就是 使用這個...

關於SqlDataReader遍歷和快取結果集

大家都知道,datareader是效率比較高的獲取資料的方式,但是,讀取資料後我們必須及時關閉datareader,否則反而會占用資料連線的資源,如果有很多datareader沒有及時關閉,就會可能發生資料庫連線池超出鏈結數最大限制的錯誤。有時候需要從資料庫獲得乙個查詢的結果集,然後遍歷這個結果集,...

SqlDataReader類的初次使用誤區

using sqlcommand cmd connect.createcommand 將資料庫中的檔案通過select語句讀出來,看別人家這麼寫能夠通過但我的就不行了 前面的資料庫連線部分略了啊 我的就是不行,只能用上面注釋的那一行才行。還不明白啥原因,暫記一下,找到原因再補充。哎,上面的問題的確狗...