如何将表作为参数传递给MySqlCommand?

我正在创建一种通过传递搜索字段从任何表中选择ID的方法。

private int SelectId(string tabela, string campo, string valor)

{

int id = 0;

using (command = new MySqlCommand())

{

command.Connection = conn;

command.Parameters.Add("@tabela", MySqlDbType.).Value = tabela;

command.Parameters.Add("@campo", MySqlDbType.Text).Value = campo;

command.Parameters.Add("@valor", MySqlDbType.VarChar).Value = valor;

command.CommandText = "SELECT `id` FROM @tabela WHERE @campo=@valor;";

try

{

id = (int)command.ExecuteScalar();

}

catch (MySqlException ex)

{

MessageBox.Show(ex.Number + " : " + ex.Message + command.CommandText);

}

catch (Exception)

{

throw;

}

}

return id;

}

但是我得到一个有关语法错误的MySqlException。当我查看“异常”消息时,它向我显示带引号的查询表!如何将表格作为不带引号的参数传递?

回答:

大多数数据库不允许您通过参数指定表名或列名。参数用于

。如果确实确实需要使它动态化,则应验证输入(它应该是一个已知的表名,并且该表中具有已知的列名),然后将其包括在SQL中。

以上是 如何将表作为参数传递给MySqlCommand? 的全部内容, 来源链接: utcz.com/qa/416966.html

回到顶部