(四)数据库命令(SQL Server) ——以编程方式访问数据库

1、 创建命令

SqlCommand对象有4个构造函数:

1)         SqlCommand cmd = new SqlCommand();

2)         SqlCommand cmd = new SqlCommand(“<command string>”);

3)         SqlCommand cmd = new SqlCommand(“<command string>”,<connection string>);

4)         SqlCommand cmd = new SqlCommand(“<command string>”,<connection string>,

<transaction>);

 

2、 CommandText命令类型

命令类型

说明

CommandType.Text

默认值;指定CommandText属性为SQL命令。该命令可能是参数化的。

CommandType.TableDirect

CommandText应为表或视图的名称。返回指定的表中的所有行和列。

CommandType.StoredProcedure

表示CommandText包含存储过程的名称。

 


 

 

 

 

 

 


3、 执行命令的方法

命令

说明

DbCommand.

ExecuteNonQuery()

命令不返回结果,适用于Insert,UpdateDelete命令。事实上命令返回一个表示命令影响行数的int类型的返回值。

DbCommand.

ExecuteScalar()

返回任意类型的结果,类型是object。不适合返回行数据的Select命令,如果查询实际上返回行数据,该方法将返回第一行的第一列。

DbCommand

.ExecuteReader()

命令返回行,返回值是SqlDataReader对象。适用于大多数Select、表直接(tabledirect)命令和很多存储过程。

SqlCommand.

ExecuteXmlReader()

返回XML数据。(注:SQL ServerDbCommand版本名为SqlCommand,它有自己的一些特殊的方法,如ExecuteXmlReader())

 

4、 参数化命令

有助于防止SQL 注入攻击,也有助于重用命令。另外,对于使用参数的存储过程,必需采用这种技术,因为使用命令类型StoredProcedure时,这些参数不能包含在命令文本中。

要在SQL语句中使用参数,需要提供占符(变量),它的前缀为字符@。配置参数后,就可以使用SqlParemeter.Value属性来设置它的值。由于SqpParametersCollection.Add()方法返回对添加的参数的引用,因此通常在同一行代码中设置参数的值。

 

使用输入参数的例子:

SqlCommand cmd = new SqlCommand (“SELECT * FROM myTable WHERE MyID=@MyIDIn”,conn);

cmd.Parameters.Add(“@MyIDIn”,SqlDbType.UniqueIdentifier).Value=MyGuidVar;

 

使用输出参数(或双向)参数的例子:(此时应独立地实例化参数)

SqlParameter myParam = new SqlParameter(“@myOutputParam”,SqlDbType.Int);

myParam.Direction = ParameterDirection.Output;

默认方向是ParameterDirection.Input,也可以用ParameterDirection.InputOutput指定双向参数,用ParameterDirection.ReturnValue指定输出参数(如果参数是存储过程的返回值)。

posted @ 2009-07-04 15:17  烈火★寒冰  阅读(1170)  评论(0编辑  收藏  举报