C # хранение изображений в SQL множественный выбор - PullRequest
0 голосов
/ 28 февраля 2012

Я хочу хранить изображения в sql с помощью приложения c #. Так что у меня есть этот код, и множественный выбор это правда. Я знаю, что мне нужно использовать массив имен файлов. Можете ли вы помочь мне понять это? Мне просто нужно выбрать более одного файла в папке и сохранить их в базе данных SQL.

просмотр изображений:

 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);
                }
            }
        }

файл в двоичный файл

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;
        }

сохранение их в sql:

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");
            }
        }

1 Ответ

2 голосов
/ 28 февраля 2012

Вам необходимо использовать свойство FileNames, чтобы получить список выбранных файлов.

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