日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ASP.NET運(yùn)用動(dòng)態(tài)構(gòu)建語句實(shí)現(xiàn)高效批量刪除

網(wǎng)站中的批量刪除很常見,特別是對(duì)在gridview中做批量刪除。我們一般的做法是循環(huán)到勾選的就調(diào)用過程直接刪除。這樣的話個(gè)人覺得效率不是很高,如果是上百上千的數(shù)據(jù)要?jiǎng)h除,那就得調(diào)用試行上百次。其實(shí)我們可以運(yùn)用動(dòng)態(tài)構(gòu)建刪除語句進(jìn)行高效批量刪除,無論你選多少要?jiǎng)h除的數(shù)據(jù),只需調(diào)用試行一次。

創(chuàng)新互聯(lián)建站是一家從事企業(yè)網(wǎng)站建設(shè)、做網(wǎng)站、成都網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)網(wǎng)站制作公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)成百上千家。

底下寫的存儲(chǔ)過程刪除語句與上圖無關(guān),上圖是常見的在gridview中做批量刪除。使用存儲(chǔ)過程:

 
 
 
 
  1. ---------------------------------------------------------------------------------------  
  2. /* *作    者:lin sen *功能說明:動(dòng)態(tài)構(gòu)建SQL語句之刪除 *編寫日期:2010年9月27日 **/  
  3. ---------------------------------------------------------------------------------------  
  4. drop procedure proc_DeleteMessagegocreate procedure proc_DeleteMessage(      
  5. @condition          
  6. varchar(500)              
  7. --刪除條件(多個(gè))             
  8.  )asbegin      
  9. declare @sql varchar(200)      
  10. --動(dòng)態(tài)構(gòu)建刪除語句      
  11. select @sql='Delete from MessageInfo where '+@condition     
  12.  --試行語句    exec (@sql)endgo 

在SQL查詢分析器上調(diào)用該過程:(傳入的條件是唯一標(biāo)識(shí)列名和所選中的值)

 
 
 
 
  1. exec proc_DeleteMessage 'MessageID=240 or MessageID=241 or MessageID=242...' 

在SQL調(diào)用看不太清楚,我們來看下Web中的前臺(tái)調(diào)用與試行。

 
 
 
 
  1.  //刪除按鈕單擊事件          
  2. protected void LBtn_Del_Click(object sender, EventArgs e)          
  3. {              
  4. StringBuilder sb = new StringBuilder();              
  5. for (int i = 0; i < GV_class.Rows.Count; i++)           
  6.  {                  
  7. CheckBox checkbox = (CheckBox)GV_class.Rows[i].FindControl("checkbox");                  
  8. if (checkbox.Checked == false)               
  9.  {                      
  10. lab_Note.Text = "請(qǐng)選擇要?jiǎng)h除信息";                   
  11.  lab_Note.Style.Add("color", "red");                 
  12.  }                  
  13. else                 
  14.  {                      
  15. MessageModel.C_ID = Int32.Parse(GV_class.Rows[i].Cells[3].Text.Trim());//選中的唯一標(biāo)識(shí)列值                    
  16. sb.Append("MessageID=");                     
  17.  sb.Append(MessageModel.C_ID);                   
  18.  sb.Append(" or ");                 
  19.  }              
  20. }              
  21. sb.Append("MessageID=null");            
  22. MessageModel.SQLSTR = sb.ToString();//動(dòng)態(tài)的條件語句傳給實(shí)體             
  23.  int j = DeleteClass(MessageModel);              
  24. //.....        }          
  25. ///          
  26.  /// 刪除信息          
  27. ///           
  28. ///           
  29. ///           
  30. public int DeleteClass(MessageModel MeModel)        
  31. {              
  32. int rowsAffected;              
  33. SqlParameter[] parameter = { new SqlParameter("@sqlstr", SqlDbType.Int) };             
  34.  parameter[0].Value = MeModel.SQLSTR;           
  35.  DbHelperSQL.RunIntProcName("proc_DeleteMessage", out rowsAffected, parameter);             
  36.  return rowsAffected;      
  37.     } 

在Web前臺(tái)動(dòng)態(tài)構(gòu)建并調(diào)用過程時(shí)我們需要注意幾點(diǎn):

1、我們勾選的列一般都是主鍵唯一標(biāo)識(shí)列,根據(jù)它進(jìn)行刪除。

2、如果你的主鍵是字符串不是整形,那么上面需要改動(dòng)一下sb.Append("MessageID='");sb.Append(MessageModel.C_ID);

sb.Append("' or ");只是多個(gè)單引號(hào)。

3、在循環(huán)完后注意加上sb.Append("MessageID=null");結(jié)束。個(gè)人認(rèn)為主鍵不可能空的,所以這個(gè)條件排除。不加的動(dòng)態(tài)語句后面多個(gè)個(gè)or;

但是千萬別在條件中加 or 1=1;那樣不管多少都成立,會(huì)被整個(gè)數(shù)據(jù)刪除。

4、把構(gòu)建的語句用參數(shù)傳入,作為刪除條件。

以上如有其他高效批量刪除數(shù)據(jù)的方法,希望貼出來和大家一起討論和分享。


當(dāng)前標(biāo)題:ASP.NET運(yùn)用動(dòng)態(tài)構(gòu)建語句實(shí)現(xiàn)高效批量刪除
網(wǎng)頁URL:http://www.dlmjj.cn/article/cogedic.html