21.3 命令
在21.2节中简要介绍了针对数据库执行的命令。简言之,命令就是一个要在数据库上执行的SQL文本字符串。命令也可以是一个存储过程,或者返回表中所有列和所有行的表名(例如SELECT *样式的子句)。
把SQL子句作为一个参数传递给Command类的构造函数,就可以构造一个命令,如下 所示:
string source = "server=(local)\\NetSDK;" +
" integrated security=SSPI;" +
"database=Northwind";
string select = "SELECT ContactName,CompanyName FROM Customers";
SqlConnection conn = new SqlConnection(source);
conn.Open();
SqlCommand cmd = new SqlCommand(select, conn);
<provider>Command类的属性CommandType可以定义某个命令是一个SQL子句、一个存储过程的调用、或者是一个完整的表语句(仅从给定的表中选择所有的列和行)。表21-2总结了CommandType枚举。
表 21-2
|
命 令 类 型 |
样 例 |
|
Text(默认) |
String select = "SELECT ContactName FROM Customers"; SqlCommand cmd = new SqlCommand(select,conn); |
|
StoredProcedure |
SqlCommandcmd=new SqlCommand("CustOrderHist",conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@CustomerID","QUICK"); |
|
TableDirect |
OleDbCommand cmd = new OleDbCommand("Categories",conn); cmd.CommandType = CommandType.TableDirect; |
在执行一个存储过程时,需要把参数传送给过程。上面的示例直接设置了参数@CustomerID,但设置参数的值还可以使用其他方式,详见本章的后面。
提示:
TableDirect命令类型只对OleDb提供程序有效—— 如果试图把这个命令类型用于其他提供程序,就会产生异常。





