1

SQL イメージ列に書き込む必要がある ac# 関数があります。バイト配列に画像があります。System.Data.SqlDbType.Image 型のパラメーターとしてバイト配列を渡しながら、SqlCommand を使用するのが標準のようです。

残念ながら、私の関数はテキスト クエリしか使用できないので (理由は聞かないでください)、T-SQL コマンドのみを使用する方法を見つける必要があります。これまでのところ、列に書き込むことができますが、画像ブロブ文字列を作成する文字列の形式がわかりません。

sql = "DECLARE @ptrval binary(16)" +
"SELECT @ptrval = textptr(Photo) FROM EMPhoto WHERE Employee='" + employeeID + "'" +
"WRITETEXT EMPhoto.Photo @ptrval " + imageByteArrayAsString;

imageByteArray を 16 進文字列とバイナリ文字列に変換しようとしましたが、SQL またはそれを読み取るアプリケーションで正しく終了しないようです。

4

1 に答える 1

1

T-SQL バイナリ定数は、0x で始まる引用符なしの 16 進数文字列です。つまり、0xFFD8FFE0...

string imageByteArrayAsString = "0x" + BitConverter.ToString(image).Replace("-", string.Empty);
于 2012-04-04T04:12:26.213 に答える