Link to home
Start Free TrialLog in
Avatar of rtay
rtayFlag 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();

                }
            }
             
            }
Avatar of Misha
Misha
Flag of Russian Federation image

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
Avatar of ste5an
ste5an
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial