2010-12-04 18 views
0

私は一般的にWPFとプログラミングを使い慣れています。私は1つのcoumnがIMAGEであるダミーのdbテーブルを設定しました。私は今、ボタンをクリックするとOpenFileDialogがjpgファイルをロードするように見えるWPFウィンドウを作成しました。 JPGファイルを選択して確認すると、イメージが自分のwpfウィンドウに表示されます。それまでは、私にとってはうまくいく。イメージがロードされ、表示されたら、別のボタンをクリックしてそのイメージをSQLデータベースに保存します。私はそれをどうやって行うのか分かりません。イメージをバイナリコードなどに変換しなければならないと思いますか?さらに、私はSQLクエリ(INSERT INTO tb_test VALUES( 'Title'、MYIMAGEOBJECT?);)を実行する手がかりを持っていません。WPF:JPGファイルを読み込んでMS SQLデータベースに保存

また、私はすでにデータベースに接続していることを言及する必要があります。クエリをexcecutingすることはすでに可能です。

これまで使用していたコードは以下のとおりですが、何かヒントありがとうございます!

private void openImage() 
     { 
      OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
      openFileDialog1.InitialDirectory = @_imagepath; 
      openFileDialog1.Title = "Browse Image Files"; 
      openFileDialog1.CheckFileExists = true; 
      openFileDialog1.CheckPathExists = true; 
      openFileDialog1.DefaultExt = "jpg"; 
      openFileDialog1.Filter = "JPG files (*.jpg)|*.jpg|All files (*.*)|*.*"; 
      openFileDialog1.FilterIndex = 1; 
      openFileDialog1.RestoreDirectory = true; 

      Nullable<bool> result = openFileDialog1.ShowDialog(); 

      if (result==true) 
      { 
       //display file's path in txt box 
       _txtBxArtwork.Text = openFileDialog1.FileName; 

       // Convert string to image source 
       ImageSourceConverter imgConv = new ImageSourceConverter(); 
       ImageSource imageSource = (ImageSource)imgConv.ConvertFromString(openFileDialog1.FileName); 
       _imagePreview.Source = imageSource; 

       // set new image path 
       setNewImagePath(System.IO.Path.GetDirectoryName(openFileDialog1.FileName)); 
      } 
     } 

     private void setNewImagePath(String newpath) 
     { 
      _imagepath = newpath; 
     } 

答えて

0

イメージをバイナリ形式でデータベースに保存する必要があります。あなたがしなければならないのは、ファイルをバイト配列で読み込み、それをデータベースに保存することだけです。以下に示すサンプルを見てください:

byte[] image = File.ReadAllBytes(@"C:\image.jpg"); 
using(SqlConnection sc = new SqlConnection()) 
{ 
    using(SqlCommand cmd = new SqlCommand(sc, "") 
    { 
     sc.ConnectionString = connectionString; 
     cmd.CommandText = "INSERT INTO TABLE(Title, ImageFile) VALUES(@Title, @Img)"; 
     cmd.Parameters.Add(new SqlParameter("@Title", "Image title")); 
     cmd.Parameters.Add(new SqlParameter("@Img", image)); 
     sc.Open(); 
     cmd.ExecuteNonQuery(); 
    } 
} 

私はこのマシン上でVSを持っていないので、私はコードをテストすることができませんでした、そこにいくつかの構文エラーことができますが、それを解決することを願っています。とにかく何かが間違っていたら、私に知らせてください。

+0

ありがとうございました!私のために働く! – beginner2k10

関連する問題