[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 258
  • Last Modified:

cant delete image because it used by anather process

i cant delete the image after i process to DB ,i dont know how to release it .please look to the code.
thank you
private void btnSave_Click(object sender, EventArgs e)
        {
            DirectoryInfo di = new DirectoryInfo("C:/MyDir");
            FileInfo[] rgFiles = di.GetFiles("*.jpg");
            foreach (FileInfo fi in rgFiles){
            try
            {
                //Read Image Bytes into a byte array
                byte[] imageSampleData = ReadImageToBytes(fi.FullName);
 
                //Initialize SQL Server Connection
                SqlConnection con = new SqlConnection(txtConnectionString.Text);
 
                //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)fi.FullName));
 
                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");
            }
            fi.Delete();

Open in new window

0
mark222
Asked:
mark222
  • 3
  • 2
1 Solution
 
DhaestCommented:
Do you want to delete all the images from the directory ?

By the way, fi.Delete() --> which file do you want to delete, because it's outside the loop. It will always contain the latest file :)
0
 
mark222Author Commented:
thank Dhaest, no it is inside the loop but forget to copy the last char }.
0
 
DhaestCommented:
You can try the following. Add the following items behind con.Close();
(probably one of those will block you)
imageSampleData  = null;
cmd = null;
0
 
mark222Author Commented:
not working , still same problem
0
 
mark222Author Commented:
it is solved ,the problem because  FileStream fStream was not close.
thank you Dhaest
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now