Parameter 對(duì)象
廣告:
Parameter 對(duì)象代表與基于參數(shù)化查詢(xún)或存儲(chǔ)過(guò)程的 Command 對(duì)象相關(guān)聯(lián)的參數(shù)或自變量.在參數(shù)化查詢(xún)時(shí)。使用Parameter對(duì)象還有利于防止注入。
Parameter 對(duì)象屬性與方法:
Name 屬性可設(shè)置或返回參數(shù)名稱(chēng);
Value 屬性可設(shè)置或返回參數(shù)值;
Attributes 和 Direction、Precision、NumericScale、Size 以及 Type 屬性可設(shè)置或返回參數(shù)特性;
AppendChunk 方法可將長(zhǎng)整型二進(jìn)制或字符數(shù)據(jù)傳遞給參數(shù)
Command對(duì)象操作Parameter對(duì)象代碼:
1.//定義SQL查詢(xún)語(yǔ)句
2. string queryString = "Select au_id,au_fname,au_lname,state from authors where state=@state";
3.//創(chuàng)建并設(shè)置SqlCommand
4.SqlCommand dbCommand = new SqlCommand();
5.dbCommand.Connection = dbConnection;
6.dbCommand.CommandType = CommandType.Text;
7.dbCommand.CommandText = queryString;
8.//設(shè)置參數(shù)@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對(duì)象操作Parameter對(duì)象簡(jiǎn)寫(xiě)代碼:
1.//Add() 方法, 4個(gè)參數(shù)
2.dbCommand.Parameters.Add("@state", DbType.String, 50, state);
3.//Add() 方法, 4個(gè)參數(shù)
4.dbCommand.Parameters.Add("@state", state);
5.//AddWithValue() 方法, 2個(gè)參數(shù)
6.dbCommand.Parameters.AddWithValue("@state", state);
Add(), AddWithValue() 兩個(gè)方法相比較Add()方法的效率更高些。
原因在于Add()可以有四個(gè)參數(shù)。其中有一個(gè)參數(shù)是設(shè)置參數(shù)的類(lèi)型,因此程序就不用再判斷參數(shù)的類(lèi)型。而AddWithValue()方法則要判斷參數(shù)類(lèi)型.
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();
}
廣告: