2017-03-08 9 views
0

C#の使用方法PDFファイルをSQL Serverのイメージデータ型としてSQLに格納するにはどうすればよいですか?続きPDFファイルをSQL Serverに変換する方法画像データタイプ

は私のsqlです、私は、好ましくは、必要なSQLイメージ列

サンプル出力で16進文字列としてPDFを保存したいTemplateFile列

CREATE TABLE [dbo].[Templates](
    [TemplateID] [bigint] IDENTITY(1,1) NOT NULL, 
    [TemplateFile] [image] NOT NULL, 
    [LanguageId] [bigint] NOT NULL) 

にテンプレートとしてPDFを保存したいです.. .0x255044462D312E360D25E2E3CFD30D0A36353

+0

イメージデータタイプはまもなく廃止される予定ですか?あなたはvarbinary(MAX) – asemprini87

+0

@ asemprini87を使用しているはずです。いいえ、私はそれを認識していませんでしたが、頭がありがとう、ありがとうございました、dbが既に存在するので、 – billboard

+3

http://stackoverflow.com/a/10310197/1384539 –

答えて

1

明らかにどのようにSQL-Serverの店なデータ深い誤解がある...

バイナリデータは16進数文字列として格納されません!これは、SELECT MyBinaryColumn FROM SomeWhereという結果が表示されたときの表示方法です。

バイナリデータは、人間の読者にとっては理解できません。読み込み可能な文字列にフォーマットする必要があります。内部バイナリ形式でそれらの値を格納し

これはあまりにも他のデータ型に適用され、:多くの場合値ではあなたがを参照してくださいは実数値ではありません。これは、表示される文字列がシステムとカルチャの設定に依存するdatetime値に関連して特に痛ましいものです。浮動小数点数が暗黙の丸めで表示されている場合(Oh!13.00000001は13 ...と等しくない)同じことが、愚かなエラーにつながります。

今日、データ型がVARBINARY(MAX)の列にバイナリデータを格納する必要があります。 IMAGEデータ型(TEXTと同じ)は廃止され、今後のバージョンではサポートされなくなります。

SqlDbType.BinaryとしてC#の値をバイト配列(byte[])として渡すことができます。 Thiago Custodioは例を示すthis answerへの彼のコメントを指摘した。

関連する問題