質問

復号化するためにSQLBinary変数を受け取るc#アセンブリがあります...

[SqlProcedure(Name="Decrypt")]
public static SqlInt32 Decrypt(SqlBinary toDecrypt)
{
    return runQuery(toDecrypt);
}

// decrypt or encrypt is determined based on the datatype of argValue
private static SqlInt32 runQuery(object argValue)
{
    // create connection and command

       command.Parameters.Add("@argValue", SqlDbType.VarBinary, 1024).Value = (SqlBinary)argValue;

単純なデバッグ用に、selectステートメントの列として(SqlBinary)argValueを含めます。このSqlBinary値がクエリに適切に配置されているようには見えません。

argValueは次のように使用されています:

QueryString += "SELECT decryptbykey(@argValue);";

返されるものは、(SqlBinary)argValueの切り捨てられたバージョンのように見えます

役に立ちましたか?

解決

自分の質問への回答:

decryptbykeyの結果をvarcharにキャストする必要がありました...当たり前! :)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top