asp.net C#命名參數SqlParameter詳解

DBHelper: 

執行查詢 

有效的select語句 

返回SqlDataReader public static SqlDataReader ExecuteReader(string sql) { SqlConnection con = new SqlConnection(constring); con.Open(); SqlCommand cmd = new SqlCommand(sql, con); return cmd.ExecuteReader(CommandBehavior.CloseConnection); } 

執行查詢帶參數 

有效的select語句 

返回SqlDataReader public static SqlDataReader ExecuteReader(string sql,SqlParameter parameter) { SqlConnection con = new SqlConnection(constring); con.Open(); SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.Add(parameter); return cmd.ExecuteReader(CommandBehavior.CloseConnection); } 

執行查詢帶參數數組 

有效的select語句 

 返回SqlDataReader public static SqlDataReader ExecuteReader(string sql, SqlParameter[] parameters) { SqlConnection con = new SqlConnection(constring); con.Open(); SqlCommand cmd = new SqlCommand(sql, con); 

AddRange添加數組 cmd.Parameters.AddRange(parameters); return cmd.ExecuteReader(CommandBehavior.CloseConnection); }

執行增刪改 

影響的行數 

public static int ExecuteNonQuery(string sql)

 { using (SqlConnection con = new SqlConnection(constring)) 

{ con.Open(); SqlCommand cmd = new SqlCommand(sql, con); return cmd.ExecuteNonQuery(); } }

 public static int ExecuteNonQuery(string sql,SqlParameter[] parameters) 

{ using (SqlConnection con = new SqlConnection(constring)) 

{ con.Open(); SqlCommand cmd = new SqlCommand(sql, con); //foreach (SqlParameter item in parameters) 

 cmd.Parameters.Add(item); 

cmd.Parameters.AddRange(parameters); return cmd.ExecuteNonQuery(); } } public static int ExecuteNonQuery(string sql, SqlParameter parameter) 

using (SqlConnection con = new SqlConnection(constring)) { con.Open(); SqlCommand cmd = new SqlCommand(sql, con); cmd.Parameters.Add(parameter); 

return cmd.ExecuteNonQuery(); } }

DAL:public static int Insert(company model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into company"); strSql.Append("(FullName,ShortName,Keywords,Description,Type,Property,Style,Capital,Size,Details,Province,City,Address,Postalcode,Tel,Fax,Mailbox,Url,Link,createtime,Poss,Linkman,Product,Userid)"); strSql.Append(" values ("); strSql.Append("@FullName,@ShortName,@Keywords,@Description,@Type,@Property,@Style,@Capital,@Size,@Details,@Province,@City,@Address,@Postalcode,@Tel,@Fax,@Mailbox,@Url,@Link,@Createtime,@Poss,@Linkman,@Product,@Userid)"); SqlParameter[] parameters = { new SqlParameter("@FullName",SqlDbType.VarChar), new SqlParameter("@ShortName",SqlDbType.VarChar), new SqlParameter("@Keywords",SqlDbType.VarChar), 。。。。。。。。。。。。。。。。。。 }; 

new SqlParameter( PARAM_PASSWORD, password== null ? (object)DBNull.Value : (object)password ), parameters[0].Value = model.FullName; parameters[1].Value = ""; 

model.ShortName; parameters[2].Value = "";

 model.Keywords; parameters[3].Value = model.Description; parameters[4].Value = model.Type; parameters[5].Value = model.Property; parameters[6].Value = model.Style; parameters[7].Value = model.Capital; parameters[8].Value = model.Size; //如果model.Details爲空的話在執行的時候就會報“需要@Details參數,但未提供該參數”所以不能parameters[9].Value = model.Details;這樣寫 parameters[9].Value = model.Details == null ? (object)System.DBNull.Value : model.Details; //parameters[9].Value = model.Details; 。。。。。。。。。。。。。。。。。。。 return DBHelper.ExecuteNonQuery(strSql.ToString(), parameters); }public static List SelectTop5(string type) { //asp.NET SqlParameter關於Like的傳參數無效問題問題在於Sql給參數自動添加了單引號。實際上在Sql,將like的代碼解析成爲了like '%'type'%' ",所以要寫成下面的形式 string sql = "select top 5 * from company where poss='通過' and type like @type order by createtime desc"; string seach = "%"+type+"%"; SqlDataReader reader = DBHelper.ExecuteReader(sql, new SqlParameter("@type",ObjToStr(seach))); 。。。。。。。。。。。。。。。。。。。}public static int UpdateComInfo(company model) { string sql11 = "update company set FullName=@FullName,ShortName=@ShortName,Keywords=@Keywords,Description=@Description,[Type]=@Type,[Property]=@Property,Style=@Style,Capital=@Capital,[Size]=@Size,Details=@Details,Province=@Province,City=@City,Address=@Address,Postalcode=@Postalcode,Tel=@Tel,Fax=@Fax,Mailbox=@Mailbox,Url=@Url,Link=@Link,createtime=@Createtime,Poss=@Poss,Linkman=@Linkman,Product=@Product,Userid=@Userid where Id=@Id"; SqlParameter[] parameters = { new SqlParameter("@FullName",ObjToStr(model.FullName)), new SqlParameter("@ShortName",ObjToStr(model.ShortName)), new SqlParameter("@Keywords",ObjToStr(model.Keywords)), 。。。。。。。。。。。。。。。。。。。 }; return DBHelper.ExecuteNonQuery(sql11,parameters); }public static company SelectById(string id) { string sql = "select * from company where Id=@id"; SqlDataReader reader = DBHelper.ExecuteReader(sql, new SqlParameter("@id", ObjToStr(id))); 。。。。。。。。。。。。。。。。}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章