纸上得来终觉浅,绝知此事要躬行。

 

ADO.NET常用对象详解之:Command对象

1.Command对象概述
  Command对象可以使用数据库命令直接与数据源进行通信。它的属性如下:
  Name:Command对象的程序化名称。在代码中使用此名称来引用Command对象。
  Connection:对Connection对象的引用,Command对象将使用该对象与数据库通信。
  CommandType:Text | StoreProduce | TableDirect。
  CommandText:SQL语句 | StoreProduce。
  Parameters:命令对象包含的参数。
 
  可以通过一下三种方式来创建Command对象

方式一、

1 string strConn, strSQL;
2 strConn = "Provider=SQLOLEDB;Data Source=(local)\\NetSDK;Initial Catalog=Northwind;Trusted_Connection=Yes;";
3 strSQL = "SELECT CustomerID,CompanyName FROM Customers";
4 OleDbConnection cn = new OleDbConnection(strConn);
5 cn.Open();
6 OleDbCommand cmd;
7
8 cmd = cn.CreateCommand();
9 cmd.CommandText = strSQL;

方式二、

string strConn, strSQL;
strConn = "Provider=SQLOLEDB;Data Source=(local)\\NetSDK;Initial Catalog=Northwind;Trusted_Connection=Yes;";
strSQL = "SELECT CustomerID,CompanyName FROM Customers";
OleDbConnection cn = new OleDbConnection(strConn);
cn.Open();
OleDbCommand cmd;

cmd = new OleDbCommand();
cmd.CommandText = strSQl;
cmd.Connection = cn;

方式三、

string strConn, strSQL;
strConn = "Provider=SQLOLEDB;Data Source=(local)\\NetSDK;Initial Catalog=Northwind;Trusted_Connection=Yes;";
strSQL = "SELECT CustomerID,CompanyName FROM Customers";
OleDbConnection cn = new OleDbConnection(strConn);
cn.Open();
OleDbCommand cmd;
cmd = new OleDbCommand(strSQL, cn);

 

  2.Command对象参数
  常用属性如下:
  ParameterName:参数名称,如"@CatID"。
  DbType,SqlType,OleDbType:参数的数据类型。
  Direction:ParameterDirection枚举值。
                   ParameterDirection.Input(默认值)| ParameterDirection.InputOutput |
                   ParameterDirection.Output | ParameterDirection.ReturnValue

  3.执行
  四种执行方式:
ExecuteNonQuery() 返回受命令影响的行数。
ExecuteScalar()   返回第一行第一列(使用与集函数)。如Count(*),Sum,Avg等聚合函数。       
ExecuteReader() 返回一个DataReader对象。如果SQL不是查询Select,则返回一个没有任何数据的System.Data.SqlClient.SqlDataReader类型的集合(EOF)。
ExecuteXmlReader()返回一个XmlReader对象。

  4.参数化查询

string strConn, strSQL;
strConn = "Provider=SQLOLEDB;Data Source=(local)\\NetSDK;Initial Catalog=Northwind;Trusted_Connection=Yes;";
OleDbConnection cn = new OleDbConnection(strConn);
cn.Open();
strSQl = "SELECT OrderID,CustomerID,EmployeeID,OrderDate FROM Order WHERE CustomerID = ?";
OleDbCommand cmd = new OleDbCommand(strSQl,cn);
cmd.Parameters.Add("@CustomerID",OleDbType.Wchar,5);
cmd.Parameters[0].Value = "ALFKI";
OleDbDataReader rdr = cmd.ExecuteReader();

 

注:SQL Server .Net数据提供程序不支持通用的参数标记"?",而需要用"@"做前缀来命名参数。

 

以上内容引自:http://www.cnblogs.com/hide0511/archive/2006/09/04/494285.html

posted on 2010-09-23 20:13  JRoger  阅读(920)  评论(0编辑  收藏  举报

导航