c#中的Sql更新循环

本文关键字:循环 更新 Sql 中的 | 更新日期: 2023-09-27 18:17:41

我想用c#更新我的Posgres表。下面是代码:

        string[] new_fax = label17.Text.Split(',');
        string[] new_names = label19.Text.Split(',');
        label17.Text = new_fax[0];
        label19.Text = new_names[1]; 
        string strConnString = "Server=" + path_server + ";Port=" + path_port + ";User Id=" + path_username + ";Password=" + path_password + ";Database=****";
        try
        {
            foreach(var data in new_fax)
            {
                foreach (var name_new in new_names)
                {
                    NpgsqlConnection objConn = new NpgsqlConnection(strConnString);
                    string strSelectCmd = "update tbl_account set balance =" + label17.Text + " where account_name like '%" + label19.Text + "%'";
                    MessageBox.Show(strSelectCmd.ToString());
                    objConn.Open();
                    DataSet ds = new DataSet();
                    NpgsqlDataAdapter objDataAdapter = new NpgsqlDataAdapter(strSelectCmd, objConn);
                    objDataAdapter.Fill(ds);
                    objConn.Close();
                    MessageBox.Show("Success");
                }
            }
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message, "Error message", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

问题是它没有进入循环,在label.text中有两个值。

我可以有一些帮助????

c#中的Sql更新循环

首先,您没有使用循环中的适当值。第二:为了老天的缘故,使用参数化查询。Google SQL注入

你的代码应该是这样的:不要使用你的文本框,而是使用foreach循环的值。

foreach(var data in new_fax)
{
    foreach (var name_new in new_names)
    {
        NpgsqlConnection objConn = new NpgsqlConnection(strConnString);
        string strSelectCmd = "update tbl_account set balance = @data where account_name LIKE '@name_new'";
        strSelectCmd.Parameters.AddWithValue("@data", data);
        strSelectCmd.Parameters.AddWithValue("@name_new", "%" + name_new + "%");
        /* ....  */
    }
}