Command操作数据

Command三种方法

        方法                   说明       
ExecuteNonQuery() 不返回任何值,一般应用于Insert,update,delete语句中。
ExecuteScalar() 返回一个值,一般用于只返回一个值的语句,如求数据统计的count语句,求最大数Max语句,求最小数Min语句。
ExecuteReader() 返回一个IDataReader,可用于迭代返回记录。

DataReader对象提供了顺序的、只读的方式读取Command对象获得的数据结果集。正是因为DataReader是以顺序的方式连续地读取数据,所以DataReader会以独占的方式打开数据库连接。

由于DataReader只执行读操作,并且每次只在内存缓冲区里存储结果集中的一条数据,所以使用DataReader对象的效率比较高,如果要查询大量数据,同时不需要随机访问和修改数据,DataReader是优先的选择。

DataReader常用属性

属性                     说明                                               
FieldCount属性 表示记录中有多少字段
HasRows属性 用来表示DataReader是否包含数据
IsClosed属性 表示DataReader是否关闭

DataReader常用方法

方法                     说明                                               
Close方法 将DataReader对象关闭
GetDataTypeName方法 取得指定字段的数据形态
GetName方法 取得指定字段的字段名称
GetOrdinal方法 取得指定字段名称在记录中的顺序
GetValue方法 取得指定字段的数据
GetValues方法 取得全部字段的数据
Read方法 读取下一条记录

访问DataReader对象时,使用索引要比使用字段访问速度要快。

 

ADO.NET数据访问技术的一个突出的特点就是支持离线访问,而实现这种离线访问技术的核心就是DataSet对象,该对象通过将数据驻留在内存来实现离线访问。

DataSet对象由一组DataTable对象组成,这些对象与DataRelation对象互相关联。这些DataTable对象又包含Rows(行)集合、Columns(列)集合,Rows集合是由多个DataRow对象组成,Columns集合是由多个DataColumns对象组成。

 

DataSet常用简单方法

方法 说明
Clear 移除表中所有行来清除任何数据的DataSet
Clone 复制该DataSet的结构但不复制数据
Copy 复制DataSet的结构和数据
Dispose 释放DataSet对象
Equals 确定两个DataSet对象是否相同
Merge 将制定的DataSet DataTable或DataRow对象的数组合并到当前的DataSet或DataTable中
Reset 将DataSet重置为初始状态

DataAdapter对象时DataSet和数据源之间的桥梁,可以建立并初始化数据表(即DataTable),对数据源执行SQL指令,与DataSet对象结合,提供DataSet对象存取数据,可视为DataSet对象的操作核心。

代码示例:

  string constr="Server=.;user=sa;pwd=sa;database=exam";

  SqlConnection mycon=new SqlConnection(constr);

  try{

    mycon.Open();

    string sql="select * from examtable";

    SqlDataAdapter myda=new SqlDataAdapter(sql,mycon);

    DataSet myds=new DataSet();

    myda.FIll(myds,"myTable");

  }

  catch(Exception ex){

    

  }

  finnally{

    mycon.Close();

  }

 

DataAdapter对象概述,DataAdapter对象可用于执行数据库的命令操作,含有四个不同的操作命令,分别如下:

  1、SelectCommand:用来选取数据源中的记录;

  2、InsertCommand:用来向数据源中插入一条记录;

  3、UpdateCommand:用来更新数据源中的数据;

  4、DeleteCommand:用来删除数据源中的记录;

 

代码示例:

  string constr="Server=.;user=sa;pwd=sa;database=exam";

  SqlConnection mycon=new SqlConnection(constr);

  try{

    mycon.Open();

    string updatesql="update mytable set gender='女'  where name='张三'"

    SqlDataAdapter myda=new SqlDataAdapter("select * from mytable ",mycon);

    myda.UpdateCommand=new SqlCommand(updatesql,mycon);

    DataSet myds=new DataSet();

    myda.FIll(myds,"update ");//acceptchange处于true状态,不会更改数据源

    //指定要更改的数据

    DataRow row=myds,Tables[0].Row[0];

    row["gender"]="女";

    myda.Update(myds,"update");

  }

  catch(Exception ex){

    

  }

  finnally{

    mycon.Close();

  }

posted @ 2020-02-02 16:52  风中寻觅  阅读(300)  评论(0编辑  收藏  举报