Parameter 对象代表与基于参数化查询或存储过程的 Command 对象相关联的参数或自变量.在参数化查询时。使用Parameter对象还有利于防止注入。
Parameter 对象属性与方法:
Name 属性可设置或返回参数名称;
Value 属性可设置或返回参数值;
Attributes 和 Direction、Precision、NumericScale、Size 以及 Type 属性可设置或返回参数特性;
AppendChunk 方法可将长整型二进制或字符数据传递给参数
Parameter 对象属性与方法:
Name 属性可设置或返回参数名称;
Value 属性可设置或返回参数值;
Attributes 和 Direction、Precision、NumericScale、Size 以及 Type 属性可设置或返回参数特性;
AppendChunk 方法可将长整型二进制或字符数据传递给参数
Command对象操作Parameter对象代码:
- //定义SQL查询语句
- string queryString = "Select au_id,au_fname,au_lname,state from authors where state=@state";
- //创建并设置SqlCommand
- SqlCommand dbCommand = new SqlCommand();
- dbCommand.Connection = dbConnection;
- dbCommand.CommandType = CommandType.Text;
- dbCommand.CommandText = queryString;
- //设置参数@state
- SqlParameter dbParameter_state = new SqlParameter();
- dbParameter_state.ParameterName = "@state";
- dbParameter_state.Value = state;
- dbParameter_state.DbType = DbType.StringFixedLength;
- //向SqlCommmand中添加@state
- dbCommand.Parameters.Add(dbParameter_state);
Command对象操作Parameter对象简写代码:
- //Add() 方法, 4个参数
- dbCommand.Parameters.Add("@state", DbType.String, 50, state);
- //Add() 方法, 4个参数
- dbCommand.Parameters.Add("@state", state);
- //AddWithValue() 方法, 2个参数
- dbCommand.Parameters.AddWithValue("@state", state);
Add(), AddWithValue() 两个方法相比较Add()方法的效率更高些。
原因在于Add()可以有四个参数。其中有一个参数是设置参数的类型,因此程序就不用再判断参数的类型。而AddWithValue()方法则要判断参数类型