2016-11-26 23 views
0

私は長い文字列(イメージを含む)が8000文字近くあるという問題があります。私はSQLサーバーにそれを格納する必要がありますし、選択クエリを使用して同じを取得したい。誰でも助けてください。文字列は以下の通りです。長い文字列をSQL Serverに格納する方法

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 

EDIT:

Iは、次のコードを使用して、データベース(varbinary(MAX)データ型)でこの文字列を格納することを試みた:

cmd1.Parameters.AddWithValue("@image_client", Convert.FromBase64String(enad.photograph)); 

これは正常データベース内のデータを格納し、しかし、データベースから抽出して元の文字列に変換するとエラーになります。 DataTableに SQLサーバーからvarbinaryをロードするとき

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

+2

は(画像が含まれている)、ほぼ8000の文字が*あなただけ...文字列として画像を保存することができませんでした。 'VARBINARY'またはそれ以上には、データベースにはありません。それ以外の場合は 'VARBINARY(MAX)'または 'VARCHAR(MAX)'となります。 –

+0

これがイメージである限り、 'blob'、' filestream'、 'varbinary(max)'などの他のデータ型を使うことができます。 – Aruna

+0

私はあなたが記述したのと同じことに従っています。私のコードEDIT、ありがとうございます。 –

答えて

1

byte[] image = Convert.FromBase64String(dt.Rows[0]["image_client"].ToString()); 

上記のコードは、次のエラーが生成:

私はそののorignal文字列に戻って変換するコードの下に使用します(DataAdapterを使用し、DataReaderでないと仮定した場合)、値はSqlBinaryオブジェクトになります。https://msdn.microsoft.com/en-us/library/system.data.sqltypes.sqlbinary(v=vs.110).aspx

あなたはValue部材を介して、それのうちByte[]を得ることができます:私は長い文字列を持っている*

SqlBinary bin = (SqlBinary)dt.Rows[0]["image_client"]; 
Byte[] data = bin.Value; 
関連する問題