c# - 如何在ado net中使用UPDATE

标签 c# .net sql ado.net

我需要在表中执行更新(家庭作业)。但这不仅仅是用新值替换旧值;对于列中已有的值,我必须添加(SUM)新值(该列的类型为 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 )

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

关于c# - 如何在ado net中使用UPDATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772219/

相关文章:

mysql - 复杂的选择

c# - 当参数值作为接口(interface)传递时,如何解析泛型参数的类类型?

c# - 更改动态创建的文本框的工具提示样式?

c# - 如何将依赖的 dll (MySql.Data.dll) 与我创建的 exe 合并?

c# - 目标框架中缺少“WindowsBase”、 'PresentationCore'、 'PresentationFramework'

c# - 如何使用 ProtoGen 从 proto 文件生成结构

mysql - 重用mysql中的临时表

sql - 通过删除联合来简化静态 Select 语句

c# - EF Core 中的多个 Includes()

c# - WPF/银光 : How to convert hex value into Color?