ADO.NET中的.NET数据提供者

2008-07-05  来源:   浏览次数 9
构建完SQL命令后,SqlCommand还需要被执行,它的执行方法有很多种,如表14-3所。

  表14-3 SqlCommand的执行方法 方 法 名说 明

  ExecuteNonQuery()返回受影响的行数

  ExecuteReader()返回SqlDataReader()对象

  ExecuteXmlReader()返回XmlReader对象

  ExecuteScaler()返回结果集中的首行首列

  其中,前三种方法支持异步操作。

  SqlDataAdapter在前两节已经介绍过,只是当时采用的是图形化的方式。它能用于填充DataSet对象。在填充DataSet之前,它必须先对数据库中需要操作的数据执行一些SQL命令。主要包括以下几种方式。 SelectCommand      //执行选择操作


 DeleteCommand         //执行删除操作
  UpdateCommand         //执行更新操作
  InsertCommand         //执行插入操作
  TableMappings         //执行表映射

  因为本例的命令对象是要执行选择操作,所以采用SelectCommand,如下所示。

  sd.SelectCommand = cmd;

  接下来是调用SqlDataAdapter的Fill()方法完成对dataSet1的填充。

  在前面部分曾提到,DataSet是以表格的形式存放数据,所以DataSet里能包含表对象。DataSet中能包含一个或多个表,如果需要对这些表进行访问,采用如下形式。

  dataSet1.Tables[0].Columns[0].ColumnName

  表示访问第一个表中第一列的列名。

  最后,访问完数据库还应该关闭连接。

sc.Close();

  通过以上例子的学习,读者应该对ADO.NET中的.NET数据提供者有了更进一步的理解。在上例中细心的读者可能会发现还遗漏了两个对象没有解释,即SqlCommandBuilder对象和SqlDataReader对象。

  SqlCommandBuilder用于创建SQL命令,它的用法和SqlCommand类似,具体使用如下所示。

SqlConnection sc = new SqlConnection(@"Data Source=(local);Integrated Security=SSPI;"+"Initial Catalog= StudentInf");
  sc.Open();
  SqlDataAdapter sd = new SqlDataAdapter("select Name,Sex,Age from Class1",sc);
  SqlCommandBuilder scb = new SqlCommandBuilder(sd);
  sd.Fill(this.dataSet1);

  将实例化的SqlDataAdapter作为参数传递给SqlCommandBuilder构造函数时,SqlCommandBuilder能自动生成SQL语句。

  SqlDataReader对象提供一种读取数据库中行的只进流的方式,它不能被继承且必须实例化后才能使用,以下是它的简单用法。

SqlDataReader sdr = cmd.ExecuteReader(); //cmd为SqlCommand对象的实例
  while (sdr.Read())
  {
  ……
  }
  sdr.Close();

  SqlDataReader最大的优势是能简单而且快速地读取数据。

[上一页1  2 
   下一篇:ADO.NET连接数据..

相关主题:ado.net

网友评论