我遇到来自C#
的SQL查询问题string sql = @"UPDATE tucitelotazky SET @otazka = @hodnota;";
MySqlCommand cmd = new MySqlCommand(sql, cnn);
cmd.Parameters.Add("@otazka",otazka);
cmd.Parameters.Add("@hodnota", hodnota);
cmd.ExecuteNonQuery();
变量@otazka
从组合框中选择,并始终返回OT1
- OT10
,它是数据库中列的名称。
@hodnota
包含文本框中的一些文字
如果我使用此SQL查询,则报告错误的SQL语法。
答案 0 :(得分:0)
您可以使组合包含与每个名称关联的值。 例如:
string column = string.Empty;
switch((int.Parse(cmb.selectedValue))
{
case 1:
column = "OT1"
break;
.
.
.
case 10:
column = "OT10"
break;
}
string sql = @"UPDATE tucitelotazky SET " + column + " = " + "@hodnota;";
MySqlCommand cmd = new MySqlCommand(sql, cnn);
cmd.Parameters.Add("@hodnota", SqlDbType.VarChar).Value = hodnota;
cmd.ExecuteNonQuery();
答案 1 :(得分:0)
列名称需要附加到查询字符串,而不是作为参数附加。例如:
string sql = @"UPDATE tucitelotazky SET [your_column_name] = [your_value];";
MySqlCommand cmd = new MySqlCommand(sql, cnn);
cmd.Parameters.Add("@hodnota", hodnota);
cmd.ExecuteNonQuery();