【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
【hibernate】Hibernate 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個數在
【轉】如何在win10(64位系統)上安裝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\)樹上兒子的大小
【SPOJ】Longest 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 這道題已經攢了半年多了。。。因為懶,一直沒去寫。。
【Luogu3457】POW-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
【BZOJ4129】Haruna’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
【HDU5421】Victor and String(回文樹)
fin void 發現 scanf oid sca print algo init 【HDU5421】Victor and String(回文樹) 題面 Vjudge 大意: 你需要支持以下操作: 動態在前端插入一個字符 動態在後端插入一個字符 回答當前本質不同的回文串個數
【POJ】1185 炮兵陣地(狀壓dp)
amp times str tin pac 答案 include sin 所有 題目 傳送門:QWQ 分析 看到$ M<=10 $考慮狀壓。 然後把每行都壓一下,那麽每個狀態相關的就是上一行和上上行的狀態。 然後枚舉。 然後復雜度最壞是$
【NOI2018】屠龍勇士(數論,exgcd)
fine %d cpp work 得到 結果 spa 做了 stdin 【NOI2018】屠龍勇士(數論,exgcd) 題面 洛谷 題解 考場上半個小時就會做了,一個小時就寫完了。。 然後發現沒過樣例,結果大力調發現中間值爆\(longlong\)了,然後就沒管了。。 然後