2016-01-16 81 views
0

我有這種情況:在DataEntryForm中我有一個下拉列表,其中用戶選擇一個字母編號,並根據該插入其他相關數據。從sqlcommand更新表記錄

我打算通過下拉列表中選擇自動改變其他表信的狀態。

我使用這個代碼:

SqlParameter answertoparam = new SqlParameter("answerto", ansTo); 

string commandText = "update IncomeLetters set IncomeLetters.docState_ID ='2' where income_number=('" + ansTo + "')"; 

SqlCommand findincomelett = new SqlCommand(commandText, conn); 
comm.Parameters.Add(answertoparam); 
conn.Open(); 

findincomelett.ExecuteNonQuery(); 
comm.ExecuteNonQuery(); 

不幸的是,結果卻是一無所獲。

服務器不給錯誤,它只是刷新就是它的頁面。

回答

1

在你貼的代碼,你傳遞SqlParameter以及傳遞值作爲原始數據。做一個任,最好把它作爲像的SqlParameter

 SqlParameter answertoparam = new SqlParameter("answertoparam", ansTo); 
     string commandText = "update IncomeLetters set IncomeLetters.docState_ID = '2' where income_number = @answertoparam"; 
     SqlCommand findincomelett = new SqlCommand(commandText, conn); 
     findincomelett.Parameters.Add(answertoparam); 
     conn.Open(); 
     findincomelett.ExecuteNonQuery(); 

而且,你擁有兩個SqlCommand對象,並調用兩個ExecuteNonQuery()他們。正確的...看到下面

 SqlCommand findincomelett = new SqlCommand(commandText, conn); --1 
     comm.Parameters.Add(answertoparam); --2 

     conn.Open(); 

     findincomelett.ExecuteNonQuery(); --1 
     comm.ExecuteNonQuery(); --2 
0

我想給你帶來這個頁面的完整代碼。

想法是:我有登記頁面。我通過存儲過程將數據傳遞給數據庫(DataInserter)。

問題在於:在註冊期間,用戶從他希望回答的字母的下拉列表中選擇數字,最後,其他DB上的字母(IncomeLetters.tbl)的狀態將從「未決「('1')改爲」已發佈「('2')。

我想,我可以清楚我點你,感謝您的支持!

protected void Button1_Click(object sender, EventArgs e) 
{ 
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MaktubhoConnectionString2"].ConnectionString); 
    using (SqlCommand comm = new SqlCommand("DataInserter", conn)) 
    { 
     comm.CommandType = CommandType.StoredProcedure; 
     comm.Connection = conn; 
     SqlParameter employeeparam = new SqlParameter("EmployeeSentIndex", int.Parse(ddlemployee.SelectedItem.Value)); 
     SqlParameter doctypeparam = new SqlParameter("doctype_ID", int.Parse(ddldoctype.SelectedItem.Value)); 
     SqlParameter doccharparam = new SqlParameter("docchar_ID", int.Parse(ddldocchar.SelectedItem.Value)); 
     SqlParameter authorityparam = new SqlParameter("authority", txtauthority.Text); 
     SqlParameter subjectparam = new SqlParameter("subject", txtsubject.Text); 

     DateTime dt = DateTime.Now; 
     string todasdate = dt.ToString("d", CultureInfo.CreateSpecificCulture("de-DE")); 
     SqlParameter entrydateparam = new SqlParameter("entrydate", todasdate); 

     string Pathname = "UploadImages/" + Path.GetFileName(FileUpload1.PostedFile.FileName); 
     SqlParameter imagepathparam = new SqlParameter("image_path", Pathname); 
     SqlParameter loginparam = new SqlParameter("login", "jsomon"); 

     comm.Parameters.Add(employeeparam); 
     comm.Parameters.Add(doctypeparam); 
     comm.Parameters.Add(doccharparam); 
     comm.Parameters.Add(authorityparam); 
     comm.Parameters.Add(subjectparam); 
     comm.Parameters.Add(entrydateparam); 
     comm.Parameters.Add(imagepathparam); 
     comm.Parameters.Add(loginparam); 
     comm.Parameters.Add("@forlabel", SqlDbType.VarChar, 100); 
     comm.Parameters["@forlabel"].Direction = ParameterDirection.Output; 
     FileUpload1.SaveAs(Server.MapPath("~/UploadImages/" + FileUpload1.FileName)); 
     string ansTo = ddlAnswerTo.SelectedItem.Value; 
     SqlParameter answertoparam = new SqlParameter("answertoparam", ansTo); 
     string commandText = "update IncomeLetters set IncomeLetters.docState_ID = '2' where income_number = @answertoparam"; 
     SqlCommand findincomelett = new SqlCommand(commandText, conn); 
     findincomelett.Parameters.Add(answertoparam); 
      conn.Open(); 
      findincomelett.ExecuteNonQuery(); 
      comm.ExecuteNonQuery(); 
      lblresult.Visible = true; 
      Image1.Visible = true; 
      lblresult.Text = "Document number:"; 
      lblnumber.Visible = true; 
      lblnumber.Text = (string)comm.Parameters["@forlabel"].Value; ; 
      conn.Close(); 
     } 

    txtauthority.Text = ""; 
    txtsubject.Text = ""; 
} 
+0

如果你需要修改你的問題,**編輯**你的問題 - 不要發佈*虛擬*回答你自己的問題..... –

0

據我瞭解,這個問題是正確的IncomeLetters.docState_ID未更新爲「2」。

您可能要調試,看看你在得到什麼價值:

string ansTo = ddlAnswerTo.SelectedItem.Value; 

在你所期待更新可能沒有滿足記錄數據庫中的記錄where子句「income_number = @answertoparam'