Command对象可以使用数据库命令直接与数据源进行通信。它的属性如下:
Name:Command对象的程序化名称。在代码中使用此名称来引用Command对象。
Connection:对Connection对象的引用,Command对象将使用该对象与数据库通信。
CommandType:Text | StoreProduce | TableDirect。
CommandText:SQL语句 | StoreProduce。
Parameters:命令对象包含的参数。
可以通过一下三种方式来 创建Command对象:
方式一、
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 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