sql >> データベース >  >> RDS >> Sqlserver

C# プリペアド ステートメント - @ 記号 (アット/シュトルーデル記号) クエリ

    実際、ODBC には、名前付きパラメーターのサポートに関する問題があります。ただし、名前付きパラメーターの特定の使用法は可能です。

    たとえば、あなたの場合、次の構文が機能します:

    OdbcCommand cmd = sql.CreateCommand();
    cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID = ?";
    cmd.Parameters.Add("USER_ID", OdbcType.VarChar, 250).Value = email;
    

    さらにトリッキーな状況は、USER_ID =?; のようなパラメーターに一意の一致がない場合です。たとえば、IN を使用する場合 WHERE の演算子

    次に、次の構文で作業を行います:

    OdbcCommand cmd = sql.CreateCommand();
    cmd.CommandText = "SELECT UNIQUE_ID FROM userdetails WHERE USER_ID IN (?, ?)";
    cmd.Parameters.Add("?ID1", OdbcType.VarChar, 250).Value = email1;
    cmd.Parameters.Add("?ID2", OdbcType.VarChar, 250).Value = email2;
    

    ? の使い方に注意してください @ の代わりに (疑問符) (アットマーク) パラメータ名内。ただし、この場合のパラメーターの値の置換は、名前とは関係なく、パラメーター コレクションでの順序とのみ関係があることに注意してください。

    これがお役に立てば幸いです:-)



    1. SUBSTRおよびINSTRSQLOracle

    2. Herokuの進化におけるエラー

    3. knexとの未定義のデータベース接続

    4. MySQLクエリの転置-行を列に変換する必要があります