小编典典

如何在adonet中使用UPDATE

sql

我需要在表(作业)中执行更新。但这不仅仅是将旧的价值替换为新的价值。到列中已经存在的值,我必须添加(求和)新值(列的类型为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();
        }
    }

我应该添加 ???的内容 实现我的目标?

有可能这样做吗?我想避免使用很多查询。


阅读 192

收藏
2021-03-23

共1个答案

小编典典

如果我正确理解了您(我不确定我能做到),您需要这样的东西:

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 )

注意我是如何使用参数而不是字符串连接的,非常重要!

2021-03-23