關於百度優化中減少訪問數據庫的處理

//當所有的詞循環到了最後的一個的時候開始對數據進行處理
                if (i == dtWorld.Rows.Count - 1)
                {
                    //判斷是否已經循環完畢,如果完 先根據guideid聚合,取出其中的要刷次數,已刷次數
                    DataTable dtt = dtWorld.DefaultView.ToTable(true, "clicktimes", "NeedClick", "guideid");
                    //遍歷所有的行
                    foreach (DataRow drs in dtt.Rows)
                    {
                        //如果說這次刷完,要刷的次數跟已刷的次數一樣,則將數據庫這組詞的時間更新爲當前時間,將datatable表中的是這個guideid的所有行全部刪除
                        if (Convert.ToInt32(drs["clicktimes"]) + 1 == Convert.ToInt32(drs["NeedClick"]))
                        {
                            //如果條件滿足就移除datatable表中的是這個guideid的所有行
                            DataRow[] ro = dtWorld.Select(string.Format("guideid={0}", drs["guideid"]));
                            foreach (DataRow ds in ro)
                            {
                                dtWorld.Rows.Remove(ds);
                            }
                            //更新數據庫的 clicktime
                            string SqlUpDate = string.Format("update guideworld set clicktime=getdate(), clicktimes=clicktimes+1 where  guideid={0}", drs["guideid"]);
                            SqlHelper.ExecuteNonQuery(conStr, CommandType.Text, SqlUpDate);
                        }
                        //如果不是最後一次刷
                        else
                        {
                            //循環將所有的是這個guideid的已刷次數都更新一次
                            DataRow[] rows = dtWorld.Select(string.Format("guideid={0}", drs["guideid"]));
                            for (int r = 0; r < rows.Length; r++)
                            {
                                rows[r]["clicktimes"] = (Int32)rows[r]["clicktimes"] + 1;
                            }
                            //更新數據庫的數據,將已刷次數更新
                            string SqlUpdNeed = string.Format("update  guideworld set  clicktimes=clicktimes+1 where  guideid='{0}'", drs["guideid"]);
                            SqlHelper.ExecuteNonQuery(conStr, CommandType.Text, SqlUpdNeed);
                        }
                    }
                    //執行切換IP
                    //或則執行重新撥號
                    UpdNeed();
                    AsynRun(Worles);
                }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章