2012-02-28 13 views
0

C#アプリケーションを使用してSQLに画像を保存します。だから私はこのコードを持っており、複数の選択が真です。私は配列ファイル名を使う必要があることを知っています。それを実現するのを助けてくれますか?私はちょうどフォルダ内の複数のファイルを選択し、SQLデータベースにthmeを格納する必要があります。C#画像をSQL多重選択に保存する

ブラウズ画像:SQLでそれらを保存するバイナリ

byte[] ReadImageToBytes(string sPath) 
     { 
      //Initialize byte array with a null value initially. 
      byte[] data = null; 

      //Use FileInfo object to get file size. 
      FileInfo fInfo = new FileInfo(sPath); 
      long numBytes = fInfo.Length; 

      //Open FileStream to read file 
      FileStream fStream = new FileStream(sPath, FileMode.Open, 
                FileAccess.Read); 

      //Use BinaryReader to read file stream into byte array. 
      BinaryReader br = new BinaryReader(fStream); 

      data = br.ReadBytes((int)numBytes); 
      return data; 
     } 

private void btnBrowseImage_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
      openFileDialog1.Multiselect = true; 
      openFileDialog1.Title = "Sekili sec"; 

      openFileDialog1.InitialDirectory = "E:\\IKA"; 
      openFileDialog1.Filter = "All files (*.jpg)|*.jpg"; 
      // openFileDialog1.FilterIndex = 10; 
      openFileDialog1.RestoreDirectory = true; 

if (openFileDialog1.ShowDialog() == DialogResult.OK) 
      { 
       try 
       { 
        txtImagePath.Text = openFileDialog1.FileName; 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); 
       } 
      } 
     } 

ファイル:

private void btnSave_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       //Read Image Bytes into a byte array 
       byte[] imageSampleData = ReadImageToBytes(txtImagePath.Text); 

       //Initialize SQL Server Connection 
      // SqlConnection con = new SqlConnection(txtConnectionString.Text); 

       String strConnString = "Data Source=1.1.1.1;Initial Catalog=Test1;User Id=dffr;Password=dffr;"; 
       SqlConnection con = new SqlConnection(strConnString); 
       //Set insert query 
       string query = "INSERT INTO tblImages (FullPath,MyImageSample) values(@FullPath, @MyImageSample)"; 

       //Initialize SqlCommand object for insert. 
       SqlCommand cmd = new SqlCommand(query, con); 

       cmd.Parameters.Add(new SqlParameter("@FullPath", 
              (object)txtImagePath.Text)); 

       cmd.Parameters.Add(new SqlParameter("@MyImageSample", 
                (object)imageSampleData)); 

       //Open connection and execute insert query. 
       con.Open(); 
       cmd.ExecuteNonQuery(); 
       con.Close(); 


      } 
      catch 
      { 
       MessageBox.Show("Error while saving image.", "Error"); 
      } 
     } 

答えて

2

あなたが選択したファイルの一覧を取得するにはFileNamesプロパティを使用する必要があります。

foreach(string filename in openFileDialog1.FileNames) 
{ 
    //1. read file 
    //2. store content of file into database. 
} 
+0

ループの本体には何が必要ですか? – Delphi

+0

それは私のミス「『openFileDialog1』は現在のコンテキスト内に存在しない」を与えます。 – Delphi