2つの異なるテーブルを使用して、変数からテーブル名が割り当てられているテーブルから選択しようとしています。ただし、DB2Exceptionエラーが発生します。C#SQLクエリテーブルパラメータを選択
db2Error = {"ERROR [42601] [IBM][AS] SQL0104N An unexpected token \"'TABLENAME'\" was found following \"\".
このクエリはエラーを引き起こすものである - テーブル名は、テーブルの名前を持つ文字列です。
string strUpdate = "SELECT COMMENT FROM '" + tableName + "' WHERE NUMBER = '" + strNumber + "' AND CODE = '" + c.Trim() + "' ";
このクエリは、しかし正常に動作します -
// string strUpdate = "SELECT COMMENT FROM TABLE WHERE NUMBER = '" + strNumber + "' AND CODE = '" + c.Trim() + "'";
は、テーブル名に変数を使用/ parametriseすることは可能ですか?
SQLインジェクションのリスクが高いことが検出されました! – dotctor
コードをデバッグして 'tablename'の値をチェックしましたか? strUpdateに割り当てられたSQLクエリ文字列を表示します。あなたのテーブル名は? –
はい私はSQLインジェクションの脆弱性に気づいていますが、この問題を最初に解決する必要があります。そして、はい、デバッグ時にテーブル名がtablenameで正しい – user6097989