關於百度優化中減少訪問數據庫的處理
//當所有的詞循環到了最後的一個的時候開始對數據進行處理
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);
}
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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.