2017-08-11 6 views
0

SQL Serverデータベースとのやり取りを含むC#を学習しています。しかし、私は、PictureBoxイメージをプログラムでSQL Serverデータベースに追加することに固執しています:C#:バイト配列を使用して、PictureBoxイメージをデータテーブルオブジェクトを介してSQL Serverデータベースに保存します。

単一のレコードをデータベースに表示/編集/追加するためのテキストボックスとフォームを作成しました。 - テキストフィールドのtxtName.DataBindings.Add(「テキスト」、playersTable、「名前」) - 私はpicturebox1イメージバイト配列をバインドする必要があると思うが、方法がわからないような

DB Connection = RRConnection 

SqlCommand object = playersCommand 

SqlDataAdapter object = playersAdapter 

dataTable object = playersTable 

currencyManager = playerManager 

PictureBox1 control = including a button to navigate filesystem and select/load jpeg image into form PictureBox1 

バインディング:次のto do

フォームが閉じられると、テーブルはSQLServerデータベーステーブルtbl_BBの "Image"という名前の列にロードされます。タイプイメージ。

イメージをバイト配列に変換して保存する必要があることはわかっていますが、イメージバイト配列をdataTableにバインドしてフォームクローズ時にデータベースにアップロードする方法を混乱させます。私はそれに多くのグーグルを行ったが、ソリューションは、私が使用しているコードと一致するように見えない...

これを考えると、これに必要なコードを教えてもらえますか?

+0

コードに合った解決策が見つからない場合は、そのコードの十分なサンプルを質問に含めると便利です。 – Adrian

+0

[ここ](https://stackoverflow.com/a/35452889/5045688)および[ここ](https://stackoverflow.com/a/22938707/5045688)を参照してください。 –

答えて

0

それを行うための一般的な方法は次のとおりです。

1)SQL Serverはvarbinary型(最大)の列を持つことになります。

2)は、jpeg形式を取り、バイト配列

3に変換する)あなたのSQLコマンドオブジェクト

4)挿入するための非問合せを実行するPARAMTERとしてバイト配列を追加します。

+0

chris-crush-codeあなたの答えをありがとう...ありがとうございます... のコード例を私にお願いします。3)バイト配列をパラメータとしてsqlコマンドオブジェクトに追加してください。 sqlCommandオブジェクトの名前がPlayersCommandで、バイト配列の名前がplayerPhotoArray ... – user8441794

+0

であると仮定します。PlayersCommand.AddParameterWIthValue(「パラメータ名はここに来ます」、playerPhotoArray);コードを投稿すると、共有ホスト環境で –

0

イメージを直接ディスクに保存して、代わりにDBのイメージへのパスを参照することをお勧めしますか? dbに画像を保存することは悪い習慣とみなされます。

+0

をさらに手助けすることができます。ファイルシステムにアクセスできないので、データベースに保存する必要があります。 –

+0

「する必要はありません」。クラウドサーバーを手に入れて、自分で設定し、ホスティングエージェンシーに連絡してください。 多くのオプションがあります。 免責条項と同様に、データベースがファイルシステムよりも優れた具体的なシナリオを見つけることができないと主張しません。私が言っているのは、これらのシナリオは非常に具体的で遠いものです。あなたはほとんどいつもより簡単な時間を持っているだけで、db内に画像そのものではなく画像にURLを格納するだけです。 –

関連する問題