将SQL表名作为参数传递

将SQL表名作为参数传递,sql,sqlite,parameters,Sql,Sqlite,Parameters,我正在处理一个需要根据输入参数更改表的SQL查询 我想要这样的东西: da.SelectCommand = new SQLiteCommand("SELECT max(TimeStamp) TimeStamp FROM [@Sensor]", conn2); da.SelectCommand.Parameters.Add("@Sensor", DbType.Object).Value = nombre_sensor; 我听说这是不可能的,您必须使用string.Format,但我不知道如何解决

我正在处理一个需要根据输入参数更改表的SQL查询

我想要这样的东西:

da.SelectCommand = new SQLiteCommand("SELECT max(TimeStamp) TimeStamp FROM [@Sensor]", conn2);
da.SelectCommand.Parameters.Add("@Sensor", DbType.Object).Value = nombre_sensor;

我听说这是不可能的,您必须使用
string.Format
,但我不知道如何解决,请提供任何解决方案?

您只能参数化常量,因此无法参数化表名、列名、函数名或SQL关键字。如果我这样做会发生什么?string query=string.Format(“从[{0}]中选择最大(时间戳)时间戳”,表名称)@GordonLinoff@Juanma可以,但必须考虑sqlinjection@Juanma . . . 这就是你必须要做的。不幸的是,SQL没有一个参数化标识符的好方法。