在C#中执行查询更新

问题描述

我有一个查询WithUpdate),我想在单击“刷新”时执行它,如果需要创建一个新的类Updateprice()调用它,则无返回值只需在Main()中编写一个方法。在Main()中创建了一个ExecuteNonQuery(),但是无法在其中推送sql更新,因此在新类中创建了另一个连接字符串。单击刷新或保存按钮后如何运行该sql命令。

public bool ExecuteNonQuery(string sql)
{
    try
    {
        using (sqlConnection conn = new sqlConnection(connInter))
        {
            using (sqlCommand cmd = new sqlCommand(sql,conn))
            {
                cmd.Connection.open();
                cmd.ExecuteNonQuery();
                cmd.dispose();
                return true;
            }
        }
    }
    catch (Exception e)
    {
        MessageBox.Show(e.Message);
        return false;
    }
}

这是我尝试的内容

public class Updateprice
{
    public string connInter = ConfigurationManager.ConnectionStrings["StringConn"].ConnectionString;
    public Updateprice()
    {
        try
        {
            using (sqlConnection conn = new sqlConnection(connInter))
            {
                sqlConnection connect = new sqlConnection(connInter);
                string query = @" WITH Sales_CTE (PR_KEY,TOTAL_PRICE)
                             AS
                             (
                            SELECT
                                Sale.PR_KEY,SUM(PRICE * AMOUNT) AS TOTAL_PRICE
                            FROM
                                Sale_Detail
                            INNER JOIN Sale
                                ON Sale_Detail.FR_KEY = Sale.PR_KEY
                            GROUP BY
                                Sale.PR_KEY,TRAN_ID,TRAN_NO,TRAN_DATE,CUSTOMER_ID,USER_ID,TABLE_ID,PAY_TYPE_ID
                            )
                            UPDATE
                                Sale
                            SET
                                Sale.TOTAL_PRICE = Sales_CTE.TOTAL_PRICE
                            FROM
                                Sale
                            INNER JOIN
                                Sales_CTE
                            ON
                                Sales_CTE.PR_KEY = Sale.PR_KEY;";

                using (sqlCommand command = new sqlCommand(query,connect))
                {
                    command.Connection.open();
                    command.ExecuteNonQuery();
                    command.dispose();
                }
            }
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }
    }
}

这是我的待售清单,我想在其中显示我的总价格,我成功显示一个包含该列总价格的表格,如果我在这里updateprice(),> >

public partial class FrmSale_Listing : FrmDataList
{
    public FrmSale_Listing(NHMain nhmain)
        : base(nhmain,"SALE_VIEW")
    {
        InitializeComponent();            
    }
   
    public override void EditRecord()
    {
        try
        {
            FrmSale f = new FrmSale(NHMain,this.DataSet,"SALE","SALE_DETAIL",double.Parse(this.GetDaTarow()["FR_KEY"].ToString().Replace(",0000","")))
            {
                isNew = false
            };
            f.ShowDialog();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    public override void NewRecord()
    {
        FrmSale f = new FrmSale(NHMain,true);
        f.isNew = true;
        f.ShowDialog();
    }
}

我的问题是

如何正确执行上述查询,这是我的代码正确,是我需要再次创建sqlConnection还是只是创建我的sql命令的字符串并将其推送到public bool ExecuteNonQuery(string sql),任何人都可以显示我有一个类似于我的问题的示例代码吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)