C# SqlCommand和SqlDataAdapter的区别

SqlCommand和SqlDataAdapter的区别 

1.SqlCommand对应DateReader而 SqlDataAdapter对应DataSet

2. SqlCommand的执行效率比较高,但不灵活,功能也有限   SqlDataAdapter的效率要低点,它是连接的,可随时更新数据,功能强大。

3.SqlCommand是C#中与Sql数据库打交道的对象,几乎所有的Sql数据库操作都需要使用该对象来实现,但其功能有限,只是简单的实现了与Sql数据库的接口而已;   SqlDataAdapter是一个功能强大的SqL数据适配器,也用于操作Sql数据库,但它的操作都要通过SqlCommand来实现(有一个属性对象的类型就是SqlCommand),也就是说,可以把SqlDataAdapter看作是一个把一些特殊功能封装了、增强了的SqlCommand!

SqlDataAdapter和SqlCommand对比分析

一、SqlDataAdapter和DateSet

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

流程:IE——GridView——DataSet——SqlDataAdapter——SQL数据库

public void BindGrid()

{

SqlDataAdapter myAdp = new SqlDataAdapter("select * from UserAdmin order by UserId desc", conn);

DataSet ds = new DataSet();

myAdp.Fill(ds, "Authors");

//Label1.Text = ds.Tables[0].Rows.Count.ToString(); //得到共有多少条记录;

GridView1.DataSource = ds.Tables["Authors"].DefaultView;

GridView1.DataBind();

}

二、SqlCommand和SqlDataReade

原理:SqlCommand通过ExecuteReader()方法将得到的数据给SqlDataReade对象。

SqlDataReade逐行将从数据源获得的数据放进缓冲区进行处理。

优点:SqlDataReade执行速度快,提高应用程序性能。

优点原因:一旦数据可用,SqlDataReade就会立即检索该数据,而不是等待返回查询的全部结果;默认情况下,一次只在缓冲区存储一行,从而降低系统开销。

缺点:使用不灵活。

流程:IE——SqlDataReade——SqlCommand——SQL数据库

注:每次使用完SqlDataReade对象后一定要调用Close()方法将其关闭。因为SqlDataReade对象以独占的方式使用Connection。

例:

SqlCommand myconn = new SqlCommand("select * from v_economy2_comidd where eid=" + Request.QueryString["eid"] + "", conn);

conn.Open();

SqlDataReader rd = myconn.ExecuteReader();

rd.Read();

Lbyear1.Text = rd["year1"].ToString();

Lbmonth1.Text = rd["month1"].ToString();

Lbcom_name.Text = rd["com_name"].ToString();

rd.Close();

conn.Close();

总结
SqlDataAdapter:
1.用于填充 DataSet 和更新 SQL 数据库的“一组”数据命令和“一个”数据库连接。

2.SqlDataAdapter不但可以操作多个SQL命令,而且还可以操作一个SQL命令
3.DataSet是关系型数据库的抽象,ADO.NET使用DataAdapter(意为数据适配器)作为dataset和数据源之间的桥梁;DataAdapter 提供了Fill()方法从数据库中获取数据并生成DataSet。
4.SqlDataAdapter用于把数据放到DataSet中,集中修改、删除后,通过Update把整个DataSet再提交回给数据库进行处理

SqlCommand:
1.对 SQL 数据库执行的“一个”SQL 语句或存储过程。

2.SqlCommand只能操作一个SQL命令
3.SqlCommand用来更新少量数据时比较合适,速度快,使用方便。他是执行sql语句查询的。


参考:https://blog.csdn.net/chenjinglong/article/details/12291147


猜你喜欢

转载自blog.csdn.net/qq_39657909/article/details/80615355
今日推荐