3

を使用してテーブルを削除しようとしていますSqlParameters。私はこのコードを持っています。

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();

次のエラーが表示されます。

「@nume」付近の構文が正しくありません。

しかし、私がするとき

SqlCommand com = new SqlCommand("drop table " + name, dbCon);

それは機能しますが、私はこのエラーを本当に理解していません。

4

2 に答える 2

4

テーブル名にパラメーターを使用することはできません。通常、文字列の連結を使用してクエリを作成すると、このあたりで言われますが、これは必要な場合の 1 つです。

SqlCommand com=new SqlCommand("drop table " + name, dbCon);
于 2015-03-12T19:21:55.317 に答える
1

お勧めしませんが、本当に SQLParameter を使いたい場合は、この方法で可能です。

SqlCommand com=new SqlCommand("EXEC('drop table ''' + @nume + '''')", dbCon);

しかし、実際には、このようにする利点はありません。これは、SQL Server 2005 およびその最新バージョンで機能します。

于 2015-03-12T19:36:36.753 に答える