首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

.NET Windows 程式實戰(七):問卷統計合併功能完整實作

     編輯:關於ASP.NET

當多位統計人員分別統計部分問卷,需將各自資料庫合併為完整統計結果。本章實作「合併統計」:匯入外部資料庫,比對問卷 ID,將選項計數累加至主資料庫,並更新問卷統計份數。

核心流程

  1. 使用者透過 OpenFileDialog 選擇外部 .mdb 檔。
  2. 系統驗證副檔名、檔案是否存在,通過則複製至暫存路徑 ..\..\DataBase\1.mdb。
  3. 讀取外部資料庫 Lj_Result 表(統計明細)與 Lj_Survey 表(統計份數)。
  4. 逐筆比對 Result_Sid(問卷 ID)、Result_Tid(題目 ID)、Result_Content(選項內容),以 UPDATE Lj_Result SET Result_Count = Result_Count + 外部計數 WHERE ... 累加計數。
  5. 同步更新 Lj_Survey.Survey_Count(總統計份數)。
  6. 顯示進度條,完成後刪除暫存檔,關閉視窗。

關鍵程式碼片段

// 合併單一問卷
string sql = "Select Result_Sid,Result_Tid,Result_Content,Result_Count From Lj_Result Where Result_Sid=" + surveyId;
DataTable dt = dboperate.GetTable(sql);
for (int i = 0; i < dt.Rows.Count; i++)
{
    string upSql = "Update Lj_Result Set Result_Count=Result_Count+" + dt.Rows[i][3] +
                   " Where Result_Sid=" + dt.Rows[i][0] +
                   " and Result_Tid=" + dt.Rows[i][1] +
                   " and Result_Content='" + dt.Rows[i][2] + "'";
    if (dboperate.ExcuteIntSql(upSql) > 0) successCount++;
    proBar.Value = i + 1;
}
if (successCount > 0)
{
    int extCount = dboperate.ExcueteIntSql("Select Survey_Count From Lj_Survey Where id=" + surveyId);
    dboperate.ExcuteSql("Update Lj_Survey Set Survey_Count=Survey_Count+" + extCount + " Where id=" + surveyId);
    File.Delete(@"..\..\DataBase\1.mdb");
    MessageBox.Show("合併成功!");
}

另提供「全部合併」選項,自動遍歷所有問卷執行上述邏輯。完整程式碼含例外處理、UI 狀態控制,可直接套用於類似離線統計合併場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved