SqlParameter和SqlCommand的結合

將SqlParameter對象添加到SqlCommand對象中:
SqlCommand cmd=new SqlCommand();
List<SqlParameter> listp=new List<SqlParameter();
foreach (SqlParameter sp in listp)
{
  if (sp.Value != null)
  {
      cmd.Parameters.Add(sp);
  }
}
 
1、執行sql語句
傳統做法:
string sql = "insert into userBooks(username,bookname)values('"+username+"','"+bookname+"')";
改進後: 
 List<SqlParameter> listp = new List<SqlParameter>();
 SqlParameter sp = new SqlParameter("@book", bookname); //通過SqlParameter創建對象引用
 listp.Add(sp);
 listp.Add(new SqlParameter("@user", username)); //匿名對象
 string sql = "insert into userBooks(username,bookname)values(@user,@book)";
好處,可以有效地防止sql注入的問題
2、執行存儲過程
執行帶參數的存儲過程:
SqlCommand cmd = new SqlCommand(storeProcedureName, conn);//storeProcedureName爲存儲過程的名字
cmd.CommandType = CommandType.StoreProcedure;
List<SqlParameter> listP = new List<SqlParameter>();
listP.Add(new SqlParameter("@param1", bName));//@param1爲存儲過程中參數的名稱
foreach(SqlParameter sp in listP)
{
  if(sp.Value != null)
  {
     cmd.Parameters.Add(sp);
  }
}
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(cmd);//執行數據庫命令,並用於填充dataset或者datatable對象
//cmd.ExecuteNonQuery();//返回受影響的行數
好處,方便用於存儲過程中參數的賦值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章