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();
}
廣告: