C# ile Resim Dosyası yükleme

Temmuz 29, 2020 0 Yazar: admin

Görüntüleri saklamak için depolama gereksinimlerinize bağlı olarak BLOB (İkili Büyük Nesne) veri türlerinden herhangi birini kullanabilirsiniz. MEDIUMBLOB veri türünü kullanıyoruz. Aşağıdakiler MySQL’deki çeşitli BLOB tiplerinin depolama kapasiteleridir.

using MySql.Data.MySqlClient;  
using System.IO; 

Veritabanına kaydedilecek bir resim seçmek için PictureBox Click olayına aşağıdaki kodu yazın.

private void pbStudentImage_Click(object sender, EventArgs e)  
{  
    try  
    {  
        OpenFileDialog openFileDialog1 = new OpenFileDialog();  
        openFileDialog1.Filter = "Image files | *.jpg";  
        if (openFileDialog1.ShowDialog() == DialogResult.OK)  
        {  
            txtStudentImage.Text = openFileDialog1.FileName;  
            pbStudentImage.Image = Image.FromFile(openFileDialog1.FileName);  
        }  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}

“TxtStudentImage” TextBox öğesinin Tıkla ve Gir olaylarına şu olayı atayın.

this.txtStudentImage.Click += new System.EventHandler(this.pbStudentImage_Click);  
this.txtStudentImage.Enter += new System.EventHandler(this.pbStudentImage_Click); 

BtnSave Düğmesinin Click olayına aşağıdaki kodu yazın.

private void btnSaveImage_Click(object sender, EventArgs e)  
{  
    MySqlConnection con = new MySqlConnection(ConString);  
    MySqlCommand cmd;  
    FileStream fs;  
    BinaryReader br;  
    try  
    {  
        if (txtFirstName.Text.Length > 0 && txtStudentImage.Text.Length > 0)  
        {  
            string FileName = txtStudentImage.Text;  
            byte[] ImageData;  
            fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);  
            br = new BinaryReader(fs);  
            ImageData = br.ReadBytes((int)fs.Length);  
            br.Close();  
            fs.Close();  
            string CmdString = "INSERT INTO Students(FirstName, LastName, Image, Address) VALUES(@FirstName, @LastName, @Image, @Address)";  
            cmd = new MySqlCommand(CmdString, con);  
            cmd.Parameters.Add("@FirstName", MySqlDbType.VarChar, 45);  
            cmd.Parameters.Add("@LastName", MySqlDbType.VarChar, 45);  
            cmd.Parameters.Add("@Image", MySqlDbType.Blob);  
            cmd.Parameters.Add("@Address", MySqlDbType.VarChar, 100);  
            cmd.Parameters["@FirstName"].Value = txtFirstName.Text;  
            cmd.Parameters["@LastName"].Value = txtLastName.Text;  
            cmd.Parameters["@Image"].Value = ImageData;  
            cmd.Parameters["@Address"].Value = txtAddress.Text;  
            con.Open();  
            int RowsAffected = cmd.ExecuteNonQuery();  
            if (RowsAffected > 0)  
            {  
                MessageBox.Show("Image saved sucessfully!");  
            }  
            con.Close();  
        }  
        else  
        {  
            MessageBox.Show("Incomplete data!", "", MessageBoxButtons.OK, MessageBoxIcon.Error);  
        }  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
    finally  
    {  
        if (con.State == ConnectionState.Open)  
        {  
            con.Close();  
        }  
    }  
}