3

私はC#.Netにかなり慣れていません。大学で教えられており、Visual Studio を使用して Windows フォームを作成しています。このテーマの新しい部分として、データベース、テーブル、およびデータセットを使用しています。

新しい Windows フォーム プロジェクトを開き、すぐに新しいデータベースを追加しました。作成するテーブルには、ImageID とイメージ自体の 2 つの列があります。ボックスに画像を追加する方法を教えてください。フルパス、相対パス、画像をドラッグしようとしましたが、何をしても同じエラーメッセージが表示されます....

無効な値
このセルで変更された値は、有効であると認識されませんでした。.Net Framework データ型: Byte[]
エラー メッセージ: 結果ペインを使用して、このフィールド データを NULL 以外の値に設定することはできません
データ型に適した値を入力するか、Esc キーを押して変更をキャンセルします

そこに画像を入れるにはどうすればよいですか?テーブル内で画像データ型を使用する方法がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

画像をSQL Server 2008に保存できます。列データ型「画像」を持つデータベーステーブルを作成するだけです。.net コードからファイル アップロード コントロールを使用して画像ファイルを選択し、画像データをデータベースに挿入する前に画像パラメーターを byte[] に変換します。

于 2012-12-04T01:19:17.243 に答える
0

より簡単な方法は、イメージをファイル システムに格納し、そのパスのみをデータベースに格納することです。基本的に、ベース フォルダーを定義します。

string baseFolder = "c:\Program Files\MyApp\Images";

それを使用して、データベースに相対パスを保存します。

INSERT INTO ImagesTable (Name, Path)
Values ('German Shepherd', 'Dogs\german-shepherd.jpg')

次に、画像を取得する必要がある場合は、次のように実行できます。

string path = Path.Combine(baseFolder, 'Dogs\german-shepherd.jpg');
Image img = Image.FromFile(path);

次の SO の質問では、このアプローチの長所と短所に関する詳細情報を見つけることができます。

于 2012-12-04T00:34:37.293 に答える