我需要在表(作业)中执行更新。但这不仅仅是将旧的价值替换为新的价值。到列中已经存在的值,我必须添加(求和)新值(列的类型为int)。这是我到目前为止所做的,但是我被卡住了:
protected void subscribeButton_Click(object sender, EventArgs e) { string txtStudent = (selectedStudentLabel.Text.Split(' '))[0]; int studentIndex = 0; studentIndex = Convert.ToInt32(txtStudent.Trim()); SqlConnection conn = new SqlConnection("Server=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Database.mdf;Trusted_Connection=True;User Instance=yes"); conn.Open(); string sql2 = "UPDATE student SET moneyspent = " + ?????? + " WHERE id=" + studentIndex + ";"; SqlCommand myCommand2 = new SqlCommand(sql2, conn); try { conn.Open(); myCommand2.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine("Error: " + ex); } finally { conn.Close(); } }
我应该添加 ???的内容 吗 ? 实现我的目标?
有可能这样做吗?我想避免使用很多查询。
如果我正确理解了您(我不确定我能做到),您需要这样的东西:
string sql2 = "UPDATE student SET moneyspent = moneyspent + @spent WHERE id=@id"; SqlCommand myCommand2 = new SqlCommand(sql2, conn); myCommand2.Parameters.AddWithValue("@spent", 50 ) myCommand2.Parameters.AddWithValue("@id", 1 )
注意我是如何使用参数而不是字符串连接的,非常重要!