//方法一**速度中等OleDbDataReaderreader=command.executereader();while(reader.Read()){vart1=reader[0];}//方法二**速度最慢OleDbDataReaderreader=command.ExecuteReader();while(reader.Read()){vart1=reader["字段名"];}//方法三**速度最快OleDbDataReaderreader=command.ExecuteReader();while(reader.Read()){vart1=reader.GetValue(0);}
關于速度的描述,下面我們來簡單驗證一下。
有一個數據庫,數據庫中的表TEST有105945行數據,設計一個循環讀取來測試他們的讀取速度。
測試源碼如下:
staticvoidMain(string[]args){stringconnstr=string.Format("Provider=Microsoft.Jet.OLEDB.4.0;DataSource={0};","F:\\2.mdb");strings1="ID";strings2="探測號";strings3="X";strings4="Y";strings5="H";stringsql=string.Format("select{0},{1},{2},{3},{4}FROM管點表",s1,s2,s3,s4,s5);TimeSpantime1=newTimeSpan();TimeSpantime2=newTimeSpan();TimeSpantime3=newTimeSpan();intcount=50;//數據庫中查詢的表有105945行for(inti=0;i<count;i++){using(OleDbConnectionconn=newOleDbConnection(connstr)){#regionconn.Open();oledbcommandcommand=conn.CreateCommand();command.CommandText=sql;OleDbDataReaderreader=command.ExecuteReader();DateTimenow=DateTime.Now;while(reader.Read()){vart1=reader[0];vart2=reader[1];vart3=reader[2];vart4=reader[3];vart5=reader[4];}time1=time1+(DateTime.Now-now);#endregion}}for(inti=0;i<count;i++){using(OleDbConnectionconn=newOleDbConnection(connstr)){#regionconn.Open();OleDbCommandcommand2=conn.CreateCommand();command2.CommandText=sql;OleDbDataReaderreader=command2.ExecuteReader();DateTimenow=DateTime.Now;while(reader.Read()){vart1=reader[s1];vart2=reader[s2];vart3=reader[s3];vart4=reader[s4];vart5=reader[s5];}time2=time2+(DateTime.Now-now);#endregion}}for(inti=0;i<count;i++){using(OleDbConnectionconn=newOleDbConnection(connstr)){#regionconn.Open();OleDbCommandcommand3=conn.CreateCommand();command3.CommandText=sql;OleDbDataReaderreader=command3.ExecuteReader();DateTimenow=DateTime.Now;while(reader.Read()){vart1=reader.GetValue(0);vart2=reader.GetValue(1);vart3=reader.GetValue(2);vart4=reader.GetValue(3);vart5=reader.GetValue(4);}time3=time3+(DateTime.Now-now);#endregion}}console.writeline(string.Format("方法一:\r\n耗時:{0}s",time1.TotalSeconds));Console.WriteLine(string.Format("方法二:\r\n耗時:{0}s",time2.TotalSeconds));Console.WriteLine(string.Format("方法三:\r\n耗時:{0}s",time3.TotalSeconds));Console.ReadKey();}
循環50次結果,即50*105945:
100次循環結果:,即100*105945:
上述內容就是C#中怎么利用 OleDbDataReader讀取數據,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注本站行業資訊頻道。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
民生銀行客服電話是多少?民生銀行客服電話:95568(1)民生銀行客服電話是面向個人和企業客戶,是集查詢、轉帳、結算于一體的自助業務系統。該系統為個人客戶提供帳戶信息查詢、轉帳、匯款等多樣化金融服務;民生個人卡、單位卡、活期一本通客戶和企業客戶無須到銀行辦理開通手續,就可以隨時隨地通過撥打我行電話銀行服務號碼,獲得已經開通的并將不斷拓展的金融服務。(2)收費標準同撥打市話的收費標準,不收取長途通話...
飛地經濟是什么?1、“飛地經濟”是指打破區劃限制,以最新國務院批準的各類開發區為主要載體,在平等協商、自愿合作的基礎上,以生產要素的互補和高效利用為直接目的,在特定區域合作建設開發各種產業園區,通過規劃、建設、管理和利益分配等合作和協調機制,實現互利共贏的區域經濟發展模式。2、按飛地建設的投入方式,可分為“飛出地投資型、飛入地投資型、兩地共投型。飛地經濟的起源與...
@真智新坐標如果不是自己手機下單,但是知道快遞單號,如何快速查詢該號的物流軌跡?走了一段彎路還發現了一個很有用的APP。以前我們店主進貨的時候會把貨物的快遞單號發到微信上,這樣我們就可以隨時查看貨物的物流軌跡。發貨人使用的快遞公司經常更換。如果發貨人用的是大云快遞,我會先在網上搜索“大云快遞單號查詢”,然后輸入運單號,找到貨物的物流軌跡。如果發貨人用的是百世快遞,我會在網上輸入百世快遞單號進行查詢...