資料庫的檢索(20)

weixin_33766168發表於2017-11-22
對資料庫中的資料索引,有兩種方式,即分別通過資料介面卡DataAdapter或者資料閱讀器DataReader將資料讀取出來放在控制元件中顯示 出來或進行處理,一般DataReader配合DataCommand使用,主要是對DataReader例項化。
使用資料介面卡DataAdapter讀取資料示例:
protected void Button1_Click(object sender, EventArgs e)
{
string ConnectionString = "Data Source=localhost Integrated Security=SSPI;Database=student;connect Timeout=30;Pooling=true;";//使用windows登陸
SqlConnection conn = new SqlConnection(ConnectionString);//建立連線物件conn
SqlDataAdapter da=new SqlDataAdapter("select * from student-info",conn);//建立一個資料介面卡物件da,用於讀取student中的資料表student-info;
DataSet ds = new DataSet();//建立資料集ds;
conn.Open();//開啟連線
da.Fill(ds);//將檢索中的資料填充到ds資料集中
conn.Close();//關閉連線
this.ListBox1.DataSource = ds;//設定控制元件listbox1的資料來源
this.ListBox1.DataTextField = "stud_name";//設定控制元件listbox要顯示的文字
this.ListBox1.DataBind();//通過databind方法將資料繫結到控制元件
}
 
使用資料介面卡DataReader讀取資料示例:
protected void Button2_Click(object sender, EventArgs e)
{
string ConnectionString = "Data Source=localhost Integrated Security=SSPI;Database=student;connect Timeout=30;Pooling=true;";//使用windows登陸
SqlConnection conn = new SqlConnection(ConnectionString);//建立連線物件conn
SqlCommand comm = new SqlCommand("select * from student-info", conn);//建立通用命令器物件comm,用於讀取student中的資料表student-info;
conn.Open();//開啟連線
SqlDataReader dr = comm.ExecuteReader();//通過例項化建立dr資料閱讀器;
this.ListBox2.DataSource = dr;//設定控制元件listbox1的資料來源
this.ListBox2.DataTextField = "stud_name";//設定控制元件listbox要顯示的文字
this.ListBox2.DataBind();//通過databind方法將資料繫結到控制元件
conn.Close();
}
從以上兩種不同的資料讀取方式可以看出,DataAdapter用來讀取資料時需要建立資料集來儲存讀取出來的 資料,而DataReader對資料進行檢索時,採用的是單向資料流的形式讀取資料,兩者比較,由於DataAdapter不涉及資料結構的操作和處理, 所以在讀取資料速度時,要比DataAdapter快。
 點選按鈕效果圖:

DataAdapter一般用於資料量比較小的資料庫或其他形式的 資料來源,DataReaderr用於資料量相對比較大的資料庫,DataReaderr是順序閱讀,速度很快,據說要快30倍以上,但是DataReader讀資料的時候是要佔用連線的,而DataSet是不用的。


本文轉自shenzhoulong  51CTO部落格,原文連結:http://blog.51cto.com/shenzhoulong/317099,如需轉載請自行聯絡原作者

相關文章