1. 程式人生 > >【NCRE】---拼接SQL語句(Case....When語句)

【NCRE】---拼接SQL語句(Case....When語句)

#region 將答案和分數更新到資料庫中  李少然 2015年12月26日10:09:07
        /// <summary>
        /// 將答案和分數更新到資料庫中
        /// </summary>
        /// <param name="list">StudentID,QuestionID,ExamAnswer,TimeStamp,fration</param>
        /// <param name="studentrecord">只需要一個studentID,為了查出學院ID</param>
        public void ReturnScore(List<WordQuestionRecordEntity> list, WordQuestionRecordEntity studentrecord)
        {
            String which = WhichWordRecored(studentrecord);
            StringBuilder sbSql = new StringBuilder();
            sbSql.Append("update WordQuestionRecordEntity_" + which + " SET Fration = CASE QuestionID ");
            string Fation = string.Empty;
            string questionID = string.Empty;
            string studentIDs = string.Empty;
            string tamstamp = string.Empty;
 
            //根據學號,和時間戳選出這一段的內容,然後再根據QuestionID給每一個flag更新分數。
            #region 更新分數的拼接sql語句
            for (int i = 0; i < list.Count; i++)
            {
                questionID = list[i].QuestionID.ToString();
                //將分數傳給變數
                Fation = list[i].Fration;
                //判分sql,拼接sql,用case,when語句
                sbSql.Append(" WHEN '" + questionID + "' THEN '" + Fation + "'");
            }
            sbSql.Append("end,"); //加“,”
            #endregion
 
            #region 拼接考生答案更新到資料庫中
            //拼接更新考生答案sql
            sbSql.Append("  ExamAnswer = CASE QuestionID");
            for (int i = 0; i < list.Count; i++)
            {
                string examAnswer = list[i].ExamAnswer.ToString();
                questionID = list[i].QuestionID.ToString();
                //學生答案資訊更新,when後邊的是QuerstionID,
                sbSql.Append(" WHEN '" + questionID + "' THEN '" + list[i].ExamAnswer + "'");
            }
            sbSql.Append(" end");   //不加逗號“,”
            #endregion
 
 
           studentIDs += "'" + list[0].StudentID.ToString() + "'";
           tamstamp += "'" + list[0].TimeStamp.ToString() + "'";
          //去除語句最後的逗號或者括號
            studentIDs.Remove(studentIDs.Length - 1, 1);
            sbSql.Append(" where StudentID in (" + studentIDs + ") and TimeStamp in (" + tamstamp + ")");
            DataTable dt = sqlhelper.ExecuteQuery(sbSql.ToString(), CommandType.Text);
 
        }
        #endregion

相關推薦

NCRE---拼接SQL語句Case....When語句

#region 將答案和分數更新到資料庫中 李少然 2015年12月26日10:09:07 /// <summary> /// 將答案和分數更新到資料庫中 /// </summary> /// <param na

SQL中的條件判斷語句case when zhen用法

簡介: case具有兩種格式。簡單case函式和case搜尋函式。這兩種方式,可以實現相同的功能。簡單case函式的寫法相對比較簡潔,但是和case搜尋函式相比,功能方面會有些限制,比如寫判定式。還有一個需要注重的問題,case函式只返回第一個符合條件的值,剩下的case

hibernateHibernate SQL 方言hibernate.dialect

hibernate where sof nod red poi form sybase ora 參考如下: RDBMSDialect DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.d

SQL中的條件判斷語句case when zhen if,ifnull用法

簡介: case具有兩種格式。簡單case函式和case搜尋函式。這兩種方式,可以實現相同的功能。簡單case函式的寫法相對比較簡潔,但是和case搜尋函式相比,功能方面會有些限制,比如寫判定式。還有一個需要注重的問題,case函式只返回第一個符合條件的值,剩下的case部分將會被自動忽略。

模板左偏樹可並堆

inline 限制 需要 表示 開始 cnblogs -a 刪除 ont 題目描述 如題,一開始有N個小根堆,每個堆包含且僅包含一個數。接下來需要支持兩種操作: 操作1: 1 x y 將第x個數和第y個數所在的小根堆合並(若第x或第y個數已經被刪除或第x和第y個數在

如何在win1064位系統上安裝apache服務器

是我 是你 www blank sta install 修改 get 分享 如何在win10(64位系統)上安裝apache服務器 今天裝了Apache服務器,下面是我總結的方法: 一,準備軟件   1.64位的apache版本 傳送門:http://www.ap

轉載koa相關知識來自官網

然而 koa res web 信號 connect 支持 ng- pro 什麽是Koa? koa 是由 Express 原班人馬打造的,致力於成為一個更小、更富有表現力、更健壯的 Web 框架。使用 koa 編寫 web 應用,通過組合不同的 generator,可以免除重

移動端二三事:陀螺儀重力感應器實現手機位置、加速度感應以及常見應用。

效果 防止 size tro 通過 select 代碼 陀螺儀 prime 首先說明一下:陀螺儀感應需在真機環境下進行調試,PC端無效果。 1.獲取感應器 需在window上監聽devicemotion事件,再通過事件對象獲取accelerationIncludingG

P3377 模板左偏樹可並堆

return 表示 style 三次 限制 continue n) sta print P3377 【模板】左偏樹(可並堆) 題目描述 如題,一開始有N個小根堆,每個堆包含且僅包含一個數。接下來需要支持兩種操作: 操作1: 1 x y 將第x個數和第

Luogu3804模板後綴自動機後綴自動機

longest lib amp .so fin end 自動 mes 累加 【Luogu3804】【模板】後綴自動機(後綴自動機) 題面 洛谷 題解 一個串的出現次數等於\(right/endpos\)集合的大小 而這個集合的大小等於所有\(parent\)樹上兒子的大小

SPOJLongest Common Substring後綴自動機

.net subst sub esp ges 最長 ace 題意 else 【SPOJ】Longest Common Substring(後綴自動機) 題面 Vjudge 題意:求兩個串的最長公共子串 題解 \(SA\)的做法很簡單 不再贅述 對於一個串構建\(SAM\)

bzoj4765普通計算姬雙重分塊

efi ref space include pos gif signed problem 。。   題目傳送門:http://www.lydsy.com/JudgeOnline/problem.php?id=4765   這道題已經攢了半年多了。。。因為懶,一直沒去寫。。

Luogu3457POW-The Flood並查集

logs truct inline stdin AI problem 每次 mark spa 【Luogu3457】POW-The Flood(並查集) 題面 洛谷 題解 我們知道,如果一個點和一個海拔不高於它的點相連 那麽連在那個點是更優的,所以考慮按照每個點的海拔排序

題解 [ZJOI2007]矩陣遊戲 二分圖匹配

void 輸出 oid img bre pro href zjoi2007 sca 原題目戳我 Solution: 方法很巧妙,我們把每個裝備的屬性 與 裝備編號連起來 從1-10000跑二分圖,如果出現斷層,就退出,輸出答案就好。 memset清理bool快一點,int洛

題解 [NOI2009]變換序列 二分圖匹配

down its -i AD out emp 二分圖 post while 懶得復制,戳我戳我 Solution: 這個題面出的很毒瘤,讀懂了其實是個板子題qwq 題面意思:有個\(0\)至\(N-1\)的數列是由另一個數列通過加減得到的,相當於將\(A_i\)變成\(i

BZOJ4129Haruna’s Breakfast樹上莫隊

mex 端點 ble Go != gis odi down 分塊 【BZOJ4129】Haruna’s Breakfast(樹上莫隊) 題面 BZOJ Description Haruna每天都會給提督做早餐! 這天她發現早飯的食材被調皮的 Shimakaze放到了一棵 樹

luogu3377 模板左偏樹可並堆

merge ret || str AS pri https i++ 左偏樹 ref #include <iostream> #include <cstdio> using namespace std; int n, m, a[100005], opt

HDU5421Victor and String回文樹

fin void 發現 scanf oid sca print algo init 【HDU5421】Victor and String(回文樹) 題面 Vjudge 大意: 你需要支持以下操作: 動態在前端插入一個字符 動態在後端插入一個字符 回答當前本質不同的回文串個數

POJ1185 炮兵陣地狀壓dp

amp times str tin pac 答案 include sin 所有 題目 傳送門:QWQ 分析 看到$ M<=10 $考慮狀壓。 然後把每行都壓一下,那麽每個狀態相關的就是上一行和上上行的狀態。 然後枚舉。 然後復雜度最壞是$

NOI2018屠龍勇士數論,exgcd

fine %d cpp work 得到 結果 spa 做了 stdin 【NOI2018】屠龍勇士(數論,exgcd) 題面 洛谷 題解 考場上半個小時就會做了,一個小時就寫完了。。 然後發現沒過樣例,結果大力調發現中間值爆\(longlong\)了,然後就沒管了。。 然後