2016-01-16 80 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'