Parameter 对象
广告:
Parameter 对象代表与基于参数化查询或存储过程的 Command 对象相关联的参数或自变量.在参数化查询时。使用Parameter对象还有利于防止注入。
Parameter 对象属性与方法:
Name 属性可设置或返回参数名称;
Value 属性可设置或返回参数值;
Attributes 和 Direction、Precision、NumericScale、Size 以及 Type 属性可设置或返回参数特性;
AppendChunk 方法可将长整型二进制或字符数据传递给参数
Command对象操作Parameter对象代码:
1.//定义SQL查询语句
2. string queryString = "Select au_id,au_fname,au_lname,state from authors where state=@state";
3.//创建并设置SqlCommand
4.SqlCommand dbCommand = new SqlCommand();
5.dbCommand.Connection = dbConnection;
6.dbCommand.CommandType = CommandType.Text;
7.dbCommand.CommandText = queryString;
8.//设置参数@state
9.SqlParameter dbParameter_state = new SqlParameter();
10.dbParameter_state.ParameterName = "@state";
11.dbParameter_state.Value = state;
12.dbParameter_state.DbType = DbType.StringFixedLength;
13.//向SqlCommmand中添加@state
14.dbCommand.Parameters.Add(dbParameter_state);
Command对象操作Parameter对象简写代码:
1.//Add() 方法, 4个参数
2.dbCommand.Parameters.Add("@state", DbType.String, 50, state);
3.//Add() 方法, 4个参数
4.dbCommand.Parameters.Add("@state", state);
5.//AddWithValue() 方法, 2个参数
6.dbCommand.Parameters.AddWithValue("@state", state);
Add(), AddWithValue() 两个方法相比较Add()方法的效率更高些。
原因在于Add()可以有四个参数。其中有一个参数是设置参数的类型,因此程序就不用再判断参数的类型。而AddWithValue()方法则要判断参数类型.
public void Add(.Model.Users model)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into Users(");
strSql.Append("Uid,Uage,Uname)");
strSql.Append(" values (");
strSql.Append("@Uid,@Uage,@Uname)");
SqlParameter[] parameters = {
new SqlParameter("@Uid", SqlDbType.Int,4),
new SqlParameter("@Uage", SqlDbType.Int,4),
new SqlParameter("@Uname", SqlDbType.VarChar,50)};
parameters[0].Value = model.Uid;
parameters[1].Value = model.Uage;
parameters[2].Value = model.Uname;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
void ExecuteSql(string strSql,SqlParameter[] paras,CommandType cmdType)
{
SqlConnection con = new SqlConnection("Server=aukm2;Database=BU;UID=buuser;PWD=buinfo");
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = cmdType;
cmd.CommandText = strSql;
foreach (SqlParameter p in paras)
{
cmd.Parameters.Add(p);
}
cmd.ExecuteNonQuery();
con.Close();
}
void ExecuteSql(string strSql,SqlParameter[] paras,CommandType cmdType)
{
SqlConnection con = new SqlConnection("Server=aukm2;Database=BU;UID=buuser;PWD=buinfo");
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = cmdType;
cmd.CommandText = strSql;
foreach (SqlParameter p in paras)
{
cmd.Parameters.Add(p);
}
cmd.ExecuteNonQuery();
con.Close();
}
广告: