使用SqlAdapter“{”时出错,必须声明表变量\“@tableName\”}

使用SqlAdapter“{”时出错,必须声明表变量\“@tableName\”},sql,asp.net,Sql,Asp.net,我看不出哪里出了问题,我想知道你是否能帮上忙? 只是一个带有表格的基本选择。 关于错误消息,我以为我在parameters部分声明了@tableName变量 SqlDataAdapter adapter = new SqlDataAdapter( "SELECT * FROM @tableName",con); adapter.SelectCommand.Parameters.Add(n

我看不出哪里出了问题,我想知道你是否能帮上忙? 只是一个带有表格的基本选择。 关于错误消息,我以为我在parameters部分声明了@tableName变量

SqlDataAdapter adapter = new SqlDataAdapter(
                              "SELECT * FROM @tableName",con);

                        adapter.SelectCommand.Parameters.Add(new SqlParameter
                         {
                             ParameterName = "@tableName",
                             Value = tableName,
                             SqlDbType = SqlDbType.NVarChar
                         });                            
                        adapter.Fill(databaseList);
不能将要选择的表名作为参数传递。通过在SQL字符串中插入正确引用的转义表名,动态构造SQL。

不能将表名作为参数传递给SELECT。通过在SQL字符串中插入正确引用的转义表名,动态构造SQL。

From子句not be expression so,not send参数

试试这个

  SqlDataAdapter adapter = new SqlDataAdapter(string.Format("Select * From {0}", "yourTableName"), con);
From子句不是表达式,因此无法发送参数

试试这个

  SqlDataAdapter adapter = new SqlDataAdapter(string.Format("Select * From {0}", "yourTableName"), con);

这是SQL注入。名称必须正确引用。是的,这是SQL注入,但是否可以使用本机SqlQuery?如果数据库中存在表名,可以检查表名@RemusRusanuYes,我最初有:SqlDataAdapter=newsqldataadapter$SELECT*FROM{tableName},con;但如果能把它参数化就好了。不要介意。谢谢大家。这是SQL注入。名称必须正确引用。是的,这是SQL注入,但是否可以使用本机SqlQuery?如果数据库中存在表名,可以检查表名@RemusRusanuYes,我最初有:SqlDataAdapter=newsqldataadapter$SELECT*FROM{tableName},con;但如果能把它参数化就好了。不要介意。谢谢大家。