SqlDataAdapter和SqlCommand区别

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:24:37
为什么用SqlCommand对象时需要打开链接( conn.Open() )
而SqlDataAdapter不需要

SqlDataAdapter和SqlCommand区别:
  SqlCommand就是是命令了,可以用它来执行SQL命令;
  SqlDataAdapter就是数据适配器了,它是用于在数据源和数据集之间通讯的一组对象;
  SqlCommand对应DateReader;
  SqlDataAdapter对应DataSet;
  SqlCommand是C#中与Sql数据库打交道的对象,几乎所有的Sql数据库操作都需要使用该对象来实现,但其功能有限,只是简单的实现了与Sql数据库的接口而已;
  SqlDataAdapter是一个功能强大的SqL数据适配器,也用于操作Sql数据库,但它的操作都要通过SqlCommand来实现(有一个属性对象的类型就是SqlCommand),也就是说,可以把SqlDataAdapter看作是一个把一些特殊功能封装了、增强了的SqlCommand。

SqlDataAdapter 一般用于查询.
SqlCommand 一般用于添加删除修改
SqlConnection conn=new SqlConnection(dbstr);
conn.open();
SqlDataAdapter myada=new SqlDataAdapter (sqlstr,conn);
dataset ds=new dataset();
myada.File(ds);
//以上是用adapter查询
SqlCommand 大多数用于返回一条数据的操作
sqlCommand cmd=new sqlCommand(sqlstr);
cmd.Ex......
手动打的没有开VS如果有错误的地方稍微改一下

SqlDataAdapter 一般用于查询.
使用的时候不用con.open();直接将数据fill到dataset中.

SqlCommand 一般用于非查询.(也可用于查询)
需要con.open();
使用完之后要关闭.

SqlDataAdapter也需要啊,只是它把这部分功能给封装到自己内部了,不需要你