2017-09-15 4 views
-1

私はSQLパラメータでクエリを持っています。私のパラメータはデータベースからの私のテーブルでなければなりません。そして、私はこれをどのように実現することができません。vb.netのsqlパラメータのようなsqlテーブルを使用

私はそれをやった:

myCommand = myConnection.CreateCommand() 
myCommand.CommandType = CommandType.Text 
myCommand.CommandText = 
"SELECT Id, Bez, Param5, Info from Table" & "@idFixed" 
myCommand.Parameters.Add("@idFixed", SqlDbType.VarChar).Value = strIdFixed 

strIdFixed(送信パラメータ)何かのIDでなければなりません、私は名前を持つ多くのテーブルTable01,Table02,Table333 ....

+0

通常、準備されたステートメントのパラメータとしてテーブル名を指定することはできません。これは、これを許可するとセキュリティ上のリスクになり、ステートメントのポイントを無効にするためです。特定の表を安全な方法で照会する必要がある場合は、その特定の表の準備済みステートメントを作成します。 –

+0

@TimBiegeleisenどうすればいいですか? –

答えて

0

を持っているので、私はそれが

を持っています
Dim tableName As String = "Test" + strIdFixed.ToString.Trim 
Dim builder = New SqlCommandBuilder() 
Dim escapedTableName As String = builder.QuoteIdentifier(tableName) 

myCommand = myConnection.CreateCommand() 
myCommand.CommandType = CommandType.Text 
myCommand.CommandText = 
"SELECT Id, Bez, Param5, Info from " + escapedTableName 

ありがとうhttps://stackoverflow.com/a/17948039/6787667

関連する問題