SQL 服务器:使用 SQL 参数删除 table
SQL Server : drop table with SQL parameters
我正在尝试使用 SqlParameters
删除 table。我有这个代码。
dbCon.Open();
DataRowView d= (DataRowView) cmbTabele.Items[cmbTabele.SelectedIndex];
string name = (d["table_name"]as string);
SqlCommand com=new SqlCommand("drop table @nume ", dbCon);
com.Parameters.Clear();
SqlParameter param = new SqlParameter("@nume", name);
com.Parameters.Add(param);
com.ExecuteNonQuery(); // ERROR HERE
dbCon.Close();
我收到此错误:
Incorrect syntax near '@nume'.
但是当我这样做时
SqlCommand com = new SqlCommand("drop table " + name, dbCon);
有效,这个错误我实在是不懂
您不能为 table 名称使用参数。虽然您通常会在这里被告知不要使用字符串连接来构建查询,但这是您需要这样做的一次!
SqlCommand com=new SqlCommand("drop table " + name, dbCon);
我不推荐,但是如果你真的想使用SQL参数,那么可以这样。
SqlCommand com=new SqlCommand("EXEC('drop table ''' + @nume + '''')", dbCon);
但实际上,这样做并没有什么好处。这项工作适用于 SQL Server 2005 及其最新版本。
我正在尝试使用 SqlParameters
删除 table。我有这个代码。
dbCon.Open();
DataRowView d= (DataRowView) cmbTabele.Items[cmbTabele.SelectedIndex];
string name = (d["table_name"]as string);
SqlCommand com=new SqlCommand("drop table @nume ", dbCon);
com.Parameters.Clear();
SqlParameter param = new SqlParameter("@nume", name);
com.Parameters.Add(param);
com.ExecuteNonQuery(); // ERROR HERE
dbCon.Close();
我收到此错误:
Incorrect syntax near '@nume'.
但是当我这样做时
SqlCommand com = new SqlCommand("drop table " + name, dbCon);
有效,这个错误我实在是不懂
您不能为 table 名称使用参数。虽然您通常会在这里被告知不要使用字符串连接来构建查询,但这是您需要这样做的一次!
SqlCommand com=new SqlCommand("drop table " + name, dbCon);
我不推荐,但是如果你真的想使用SQL参数,那么可以这样。
SqlCommand com=new SqlCommand("EXEC('drop table ''' + @nume + '''')", dbCon);
但实际上,这样做并没有什么好处。这项工作适用于 SQL Server 2005 及其最新版本。