iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
2
Modern Web

淺談資料庫&ASP.net&C# 入門系列 第 13

[iT鐵人賽Day13]ASP.NET 讀取資料庫的資料常常用到的DataReader

  • 分享至 

  • xImage
  •  

ASP.NET在讀取資料時,很常會使用DataReader這個物件。

DataReader

一個資料流,以「順向」且「唯讀」的查看方式來讀取裡面的資料,

就像個指標一樣在資料庫裡讀取資料直到連線關閉,與DataSet相比不會占用大量記憶體較省資源。

DataReader 範例:


//創一個變數存放從config內的資訊,其實也可不用創立這變數,直接放進SqlConnection內即可。
 string s_data = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["config中connectionString的name"].ConnectionString;  

//new一個SqlConnection物件,是與資料庫連結的通道(其名為Connection),以s_data內的連接字串連接所對應的資料庫。
SqlConnection connection = new SqlConnection(s_data); 

//new一個SqlCommand告訴這個物件準備要執行什麼SQL指令
SqlCommand Command =new SqlCommand($"SQL語法指令", connection);

//與資料庫連接的通道開啟
connection.Open();

//new一個DataReader接取Execute所回傳的資料。
SqlDataReader Reader = getCommand.ExecuteReader();

//檢查是否有資料列
if (Reader.HasRows)
{
//使用Read方法把資料讀進Reader,讓Reader一筆一筆順向指向資料列,並回傳是否成功。
if (Reader.Read())
   {
   
   //DataReader讀出欄位內資料的方式,通常也可寫Reader[0]、[1]...[N]代表第一個欄位到N個欄位。
   TextBox.Text = Reader["欄位名稱"].ToString();
   
   }
}   

//關閉與資料庫連接的通道
connection.Close(); 
   

1.Connection : 與資料庫建立起連接的通道。

2.Command: 下達SQL語法指令。要對資料庫下的SQL語法,必須是要一個物件才能執行,不能直接用SQL語法,所以才要把SQL丟進sqlcommand 這個物件

3.Open: 開啟與資料庫連接的通道。

4.Execute: 通知資料庫執行Command所下達的SQL語法指令,並回傳資料。可以通過這個物件來查詢結果,它提供了游水式的執行方式,即從結果中讀取一列之後,指向到下一列。

5.Read: 使DataReader開始一行一行的讀取資料列。呼叫Read()方法之後,DataReader物件才會移動到資料集的第一列,同時此方法也返回一個Bool值,表明下一列是否可用,回傳True則可用,回傳False則到達資料集末尾。

6.Reader[欄位名稱 or 0~N]: DataReader讀出欄位內資料的方式,可寫Reader[0]、[1]...[N]代表第一個欄位到N個欄位,也可直接寫欄位的名稱。

7.Close: 關閉與資料庫之間的連結管道。

if & while:

使用Reader.Read()時,通常一筆資料時使用if;大於一筆資料時使用while判斷式。
若讀取失敗(代表沒資料),會傳回false 讓if或是while判斷失敗而不執行。


上一篇
[iT鐵人賽Day12]ASP.NET與資料庫的聯繫
下一篇
[iT鐵人賽Day14]ASP.NET與資料庫的資料存取-DataSet你很猛
系列文
淺談資料庫&ASP.net&C# 入門36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言