Asp.net中SqlDataAdapter和SqlCommand对比分析
2011-11-20 08:47
387 查看
一、SqlDataAdapter和DateSet
原理:DateSet是数据的内存驻留表示形式,它提供了独立于数据源的一致关系编程模型;从某种程度上说DateSet就是一个不可视的数据库。但真正与数据源打交道的是SqlDataAdapter,包括从数据源填充数据集和从数据集更新数据源。SqlDataAdapter使用Fill()方法将检索的数据填充到DateSet。
流程:IE——GridView——DataSet——SqlDataAdapter——SQL数据库
public
void BindGrid()
[align=left] {[/align]
SqlDataAdapter myAdp =
new
SqlDataAdapter("select * from UserAdmin order byUserId desc", conn);
[align=left] DataSet ds =newDataSet();[/align]
myAdp.Fill(ds,
"Authors");
[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和SqlDataReade
原理:SqlCommand通过ExecuteReader()方法将得到的数据给SqlDataReade对象。
SqlDataReade逐行将从数据源获得的数据放进缓冲区进行处理。
优点:SqlDataReade执行速度快,提高应用程序性能。
优点原因:一旦数据可用,SqlDataReade就会立即检索该数据,而不是等待返回查询的全部结果;默认情况下,一次只在缓冲区存储一行,从而降低系统开销。
缺点:使用不灵活。
流程:IE——SqlDataReade——SqlCommand——SQL数据库
注:每次使用完SqlDataReade对象后一定要调用Close()方法将其关闭。因为SqlDataReade对象以独占的方式使用Connection。
例:
SqlCommandmyconn =
newSqlCommand("select * from v_economy2_comiddwhere eid="
+ Request.QueryString["eid"] +
"",conn);
[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();
区别在于:
SqlDataAdapter:
用于填充 DataSet 和更新 SQL 数据库的“一组”数据命令和“一个”数据库连接。
SqlDataAdapter不但可以操作多个SQL命令,而且还可以操作一个SQL命令
DataSet是关系型数据库的抽象,ADO.NET使用DataAdapter(意为数据适配器)作为dataset和数据源之间的桥梁;DataAdapter提供了Fill()方法从数据库中获取数据并生成DataSet。
SqlCommand:
对 SQL 数据库执行的“一个”SQL 语句或存储过程。
SqlCommand只能操作一个SQL命令
个人觉得SqlCommand用来更新少量数据时比较合适,速度快,使用方便。他是执行sql语句查询的。
SqlDataAdapter用于把数据放到DataSet中,集中修改、删除后,通过Update把整个DataSet再提交回给数据库进行处理。
原理:DateSet是数据的内存驻留表示形式,它提供了独立于数据源的一致关系编程模型;从某种程度上说DateSet就是一个不可视的数据库。但真正与数据源打交道的是SqlDataAdapter,包括从数据源填充数据集和从数据集更新数据源。SqlDataAdapter使用Fill()方法将检索的数据填充到DateSet。
流程:IE——GridView——DataSet——SqlDataAdapter——SQL数据库
public
void BindGrid()
[align=left] {[/align]
SqlDataAdapter myAdp =
new
SqlDataAdapter("select * from UserAdmin order byUserId desc", conn);
[align=left] DataSet ds =newDataSet();[/align]
myAdp.Fill(ds,
"Authors");
[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和SqlDataReade
原理:SqlCommand通过ExecuteReader()方法将得到的数据给SqlDataReade对象。
SqlDataReade逐行将从数据源获得的数据放进缓冲区进行处理。
优点:SqlDataReade执行速度快,提高应用程序性能。
优点原因:一旦数据可用,SqlDataReade就会立即检索该数据,而不是等待返回查询的全部结果;默认情况下,一次只在缓冲区存储一行,从而降低系统开销。
缺点:使用不灵活。
流程:IE——SqlDataReade——SqlCommand——SQL数据库
注:每次使用完SqlDataReade对象后一定要调用Close()方法将其关闭。因为SqlDataReade对象以独占的方式使用Connection。
例:
SqlCommandmyconn =
newSqlCommand("select * from v_economy2_comiddwhere eid="
+ Request.QueryString["eid"] +
"",conn);
[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();
区别在于:
SqlDataAdapter:
用于填充 DataSet 和更新 SQL 数据库的“一组”数据命令和“一个”数据库连接。
SqlDataAdapter不但可以操作多个SQL命令,而且还可以操作一个SQL命令
DataSet是关系型数据库的抽象,ADO.NET使用DataAdapter(意为数据适配器)作为dataset和数据源之间的桥梁;DataAdapter提供了Fill()方法从数据库中获取数据并生成DataSet。
SqlCommand:
对 SQL 数据库执行的“一个”SQL 语句或存储过程。
SqlCommand只能操作一个SQL命令
个人觉得SqlCommand用来更新少量数据时比较合适,速度快,使用方便。他是执行sql语句查询的。
SqlDataAdapter用于把数据放到DataSet中,集中修改、删除后,通过Update把整个DataSet再提交回给数据库进行处理。
相关文章推荐
- ASP.net中SqlDataAdapter和SqlCommand对比分析
- Asp.net中SqlDataAdapter和SqlCommand对比分析
- Asp.net中SqlDataAdapter和SqlCommand对比分析(二)
- asp.net SqlDataAdapter对象使用札记
- Asp.net 用DataSet对象更新数据(SqlDataAdapter) DataTable加主键
- ASP.NET 3.5核心编程学习笔记(12):SqlCommand、SqlDataReader、事务
- 让 ADO.NET 2.0 的 SqlCommand 和 SqlDataAdapter 合作
- ADO.NET—Asp.net 用DataSet对象更新数据(SqlDataAdapter)
- Asp.net中SqlDataAdapter和SqlCommand对比分析
- ADO.NET—Asp.net 用DataSet对象更新数据(SqlDataAdapter)
- Asp.net 用DataSet对象更新数据(SqlDataAdapter)
- 让 ADO.NET 2.0 的 SqlCommand 和 SqlDataAdapter 合作
- 在asp.net中使用sql server存储过程 (包括SqlDataAdapter调用存储过程)
- asp.net SqlDataAdapter Update
- 在asp.net中使用sql server存储过程 (包括SqlDataAdapter调用存储过程)
- asp.net里SqlDataAdapter存在Sql注入漏洞
- asp.net SqlDataAdapter对象使用札记
- sqlDataAdapter和SqlCommand的区别
- SqlCommand和SqlDataAdapter的区别
- 在执行Ado.net SqlDataAdapter 查询超时设置