使用SqlAdapter“{”时出错,必须声明表变量\“@tableName\”}
我看不出哪里出了问题,我想知道你是否能帮上忙? 只是一个带有表格的基本选择。 关于错误消息,我以为我在parameters部分声明了@tableName变量使用SqlAdapter“{”时出错,必须声明表变量\“@tableName\”},sql,asp.net,Sql,Asp.net,我看不出哪里出了问题,我想知道你是否能帮上忙? 只是一个带有表格的基本选择。 关于错误消息,我以为我在parameters部分声明了@tableName变量 SqlDataAdapter adapter = new SqlDataAdapter( "SELECT * FROM @tableName",con); adapter.SelectCommand.Parameters.Add(n
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;但如果能把它参数化就好了。不要介意。谢谢大家。