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中有两个值。
我可以有一些帮助????
首先,您没有使用循环中的适当值。第二:为了老天的缘故,使用参数化查询。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 + "%");
/* .... */
}
}