我在asp.net c#中創建了在線考試應用程序(基於Web)。在我的應用程序如何在asp.net中單擊前一個按鈕時插入非重複值
第一種形式包含一個下拉列表 測試&啓動按鈕。
當我從下拉列表中選擇一個特定的測試,然後點擊開始按鈕,它會進入下一頁。
此頁面包含一個標籤 問題,單選按鈕列表爲 答案,下一個&上一個按鈕。
在第一種形式:開始按鈕的點擊事件,我創建了非重複的隨機值(對於問題id),即存儲在數組中。 當它重定向到另一個頁面時,那麼該數組中的第一個問題將顯示與答案&單擊下一個按鈕後,下一個問題將出現,這裏我已經插入選定的值(在radiobuttonlist中選擇的答案)用戶在數據庫中計算分數。 問題是點擊上一個按鈕,然後選擇另一個答案,然後再次插入記錄,因爲我想更新該值,而不是重複的值。我爲此寫了下面的代碼,但它不起作用。這裏
if (result != DBNull.Value)
這種情況不能正常工作,因爲我想檢查該值是否存在。
請幫幫我嗎?
if (Convert.ToInt32(Session["Counter"]) <= 7)
{
//a is the array of random values where Counter is my counter start value=1
SqlCommand cmd = new SqlCommand("SELECT selected from Sel_Ans WHERE Quid=" + a[Convert.ToInt32(Session["Counter"]) - 1] + "", sqlconn);
sqlconn.Open();
var result = cmd.ExecuteScalar();
if (result != DBNull.Value)
{
cmd = new SqlCommand("Update Sel_Ans Set [email protected] WHERE Quid=" + a[Convert.ToInt32(Session["Counter"]) - 1] + "", sqlconn);
SqlParameter Selected = cmd.Parameters.Add("@Selected", SqlDbType.Int, 50);
Selected.Value = rb;
sqlconn.Close();
sqlconn.Open();
cmd.ExecuteNonQuery();
sqlconn.Close();
}
else
{
int t = Convert.ToInt32(Session["Counter"]);
cmd = new SqlCommand("INSERT INTO Sel_Ans VALUES ('1', @Quid, @Selected, '1')", sqlconn);
SqlParameter Quid = cmd.Parameters.Add("@Quid", SqlDbType.Int, 50);
Quid.Value = a[t - 2];
SqlParameter Selected = cmd.Parameters.Add("@Selected", SqlDbType.Int, 50);
Selected.Value = rb;
sqlconn.Close();
sqlconn.Open();
cmd.ExecuteNonQuery();
sqlconn.Close();
}
sqlconn.Close();
}
,因爲我要檢查值的存在與否這種情況下不能正常工作? – 2011-04-19 11:29:38
你是什麼意思, 'if(result!= DBNull.Value) ' 包含你的代碼嗎? – 2011-04-19 11:30:22
我想要插入選定的值,但如果該值已經存在,那麼在調試結果的值時應該更新不插入新值 – user707294 2011-04-19 11:35:52