Avatar of rtay
rtay
Flag for United States of America asked on

How to allow null in image upload

C# Visual Studio WinForm.  Upload Image.  I have 4 possible images able to upload.  Sometimes only one image needs to be uploaded.  Currently, my code works if I upload all 4 images.  If i leave one blank, it errors out with "Empty path name is not legal."  How do I code to allow null path if no image.

Thanks.    


[code]try

            {
                if (frtBillTextBox.Text.Length>0 && maltIDTextBox.Text.Length>0)

                {
                    string FileName = fBImageContentTextBox.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 FileName2 = sHImageContentTextBox.Text;
                    byte[] ImageData2;
                    fs2 = new FileStream(FileName2, FileMode.Open, FileAccess.Read);
                    br2 = new BinaryReader(fs2);
                    ImageData2 = br2.ReadBytes((int)fs2.Length);
                    br2.Close();
                    fs2.Close();



                    string FileName3 = wCImageContentTextBox.Text;
                    byte[] ImageData3;
                    fs3 = new FileStream(FileName3, FileMode.Open, FileAccess.Read);
                    br3 = new BinaryReader(fs3);
                    ImageData3 = br3.ReadBytes((int)fs3.Length);
                    fs3.Close();
                    br3.Close();


                    string FileName4 = frImageContentTextBox.Text;
                    byte[] ImageData4;
                    fs4 = new FileStream(FileName4, FileMode.Open, FileAccess.Read);
                    br4 = new BinaryReader(fs4);
                    ImageData4 = br4.ReadBytes((int)fs4.Length);
                    fs4.Close();
                    br4.Close();



                    string CmdString = "Update Malt SET FrtBill=@FrtBill,FBImageContent=@FBImageContent,SHImageContent=@SHImageContent,WCImageContent=@WCImageContent,FrimageContent=@FrimageContent Where MaltID = @MaltID";

                    cmd = new SqlCommand(CmdString, conn);

                    cmd.Parameters.Add("@FrtBill", SqlDbType.NVarChar, 50);
                    cmd.Parameters.Add("@FBImageContent", SqlDbType.Image);
                    cmd.Parameters.Add("@SHImageContent", SqlDbType.Image);
                    cmd.Parameters.Add("@MaltID", SqlDbType.Int);
                    cmd.Parameters.Add("@WCImageContent", SqlDbType.Image);
                    cmd.Parameters.Add("@FrimageContent", SqlDbType.Image);
                    cmd.Parameters.Add("@WTag", SqlDbType.NVarChar, 50);
                    //cmd.Parameters.Add("@NetWt", SqlDbType.Int);
                    cmd.Parameters.Add("@Complete", SqlDbType.NVarChar, 50);


                    cmd.Parameters["@FrtBill"].Value = frtBillTextBox.Text;
                    cmd.Parameters["@FBImageContent"].Value = ImageData;
                    cmd.Parameters["@SHImageContent"].Value = ImageData2;
                    cmd.Parameters["@MaltID"].Value = maltIDTextBox.Text;
                    cmd.Parameters["@WCImageContent"].Value = ImageData3;
                    cmd.Parameters["@FrimageContent"].Value = ImageData4;
                    cmd.Parameters["@WTag"].Value = wTagTextBox.Text;
                    //cmd.Parameters["@NetWt"].Value = netWtTextBox.Text;
                    cmd.Parameters["@Complete"].Value = completeTextBox.Text;


                    conn.Open();
                    int RowsAffected = cmd.ExecuteNonQuery();
                    if (RowsAffected > 0)

                    {
                        MessageBox.Show("Image Saved Sucessfully!");
                    }

                    conn.Close();

                    pictureBox1.Image = null;
                    pictureBox2.Image = null;
                    pictureBox3.Image = null;
                    pictureBox4.Image = null;

                }

                else

                {
                    MessageBox.Show("Incomplete Data", "", MessageBoxButtons.OK);
                }

            }

            catch(Exception ex)

            {

                MessageBox.Show(ex.Message);

            }


            finally
            {
                if(conn.State == ConnectionState.Open)
                {

                    conn.Close();

                }
            }
             
            }
C#Microsoft SQL ServerMicrosoft Visual Studio

Avatar of undefined
Last Comment
ste5an

8/22/2022 - Mon
Misha

May be you should add small check before you use filename from TextBox?

For example,

if (sHImageContentTextBox.Text != "")
{
	string FileName = sHImageContentTextBox.Text;
	byte[] ImageData;
	FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
	br = new BinaryReader(fs);
	ImageData = br.ReadBytes((int)fs.Length);
	br.Close();
	fs.Close();
}

Open in new window

ASKER CERTIFIED SOLUTION
ste5an

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck