您的位置:首页 > 编程语言 > ASP

Asp.net中SqlDataAdapter和SqlCommand对比分析

2008-03-30 15:09 399 查看
一、SqlDataAdapter和DateSet
原理:DateSet是数据的内存驻留表示形式,它提供了独立于数据源的一致关系编程模型;从某种程度上说DateSet就是一个不可视的数据库。但真正与数据源打交道的是SqlDataAdapter,包括从数据源填充数据集和从数据集更新数据源。SqlDataAdapter使用Fill()方法将检索的数据填充到DateSet。
流程:IE——GridView——DataSet——SqlDataAdapter——SQL数据库

[align=left]public void BindGrid()[/align]
[align=left] {[/align]
[align=left] SqlDataAdapter myAdp = new SqlDataAdapter("select * from UserAdmin order by UserId desc", conn);[/align]
[align=left] DataSet ds = new DataSet();[/align]
[align=left] myAdp.Fill(ds, "Authors");[/align]
[align=left] //Label1.Text = ds.Tables[0].Rows.Count.ToString(); //得到共有多少条记录;[/align]
[align=left] GridView1.DataSource = ds.Tables["Authors"].DefaultView;[/align]
[align=left] GridView1.DataBind();[/align]
}

二、SqlCommand和SqlDataReader
原理:SqlCommand通过ExecuteReader()方法将得到的数据给SqlDataReader对象。
SqlDataReader逐行将从数据源获得的数据放进缓冲区进行处理。
优点:SqlDataReader执行速度快,提高应用程序性能。
优点原因:一旦数据可用,SqlDataReader就会立即检索该数据,而不是等待返回查询的全部结果;默认情况下,一次只在缓冲区存储一行,从而降低系统开销。
缺点:使用不灵活。
流程:IE——SqlDataReader——SqlCommand——SQL数据库
注:每次使用完SqlDataReader对象后一定要调用Close()方法将其关闭。因为SqlDataReader对象以独占的方式使用Connection。
例:
[align=left] SqlCommand myconn = new SqlCommand("select * from v_economy2_comidd where eid=" + Request.QueryString["eid"] + "", conn);[/align]
[align=left] conn.Open();[/align]
[align=left] SqlDataReader rd = myconn.ExecuteReader();[/align]
[align=left] rd.Read();[/align]
[align=left] Lbyear1.Text = rd["year1"].ToString();[/align]
[align=left] Lbmonth1.Text = rd["month1"].ToString();[/align]
Lbcom_name.Text = rd["com_name"].ToString();
[align=left] rd.Close();[/align]
conn.Close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: