Click here to Skip to main content
15,881,559 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello all

The below code working fine, but i am looking in case if the user did not choose a new photo then the code will not update the current image. The below code when i click on the update button (and keep the file upload empty) it show no image but currently there are an old image.


ASP.NET
 <asp:FormView ID="EditUsrInfoFVw" runat="server">
                         <ItemTemplate>
                           <tr>
                       <td>First Name:</td>
                       <td><asp:TextBox ID="FNEDTTXTBX" runat="server" CssClass="form-control" Text='<%# Bind("FN") %>'></asp:TextBox></td>
                     </tr>
                     <tr>
                       <td>Last Name:</td>
                       <td> <asp:TextBox ID="LNEDTTXTBX" runat="server" CssClass="form-control" Text='<%# Bind("LN") %>'> </asp:TextBox></td>
                     </tr>
                     <tr>
<tr>
                       <td>Personal Image:</td>
                       <td>
                           <asp:FileUpload ID="EditImgFUP" runat="server" CssClass="form-control" />
                       </td>
                     </tr>
</ItemTemplate>
                         </asp:FormView>


C#
 protected void editHPPersInfobtn_Command(object sender, CommandEventArgs e)
        {
            EditUsrPan.Visible = false;
            showusrinfo.Visible = true;


            SqlConnection EduSRiNFOCon = new SqlConnection(sc);
            SqlCommand EditUsrInfocmd = new SqlCommand();

            if (Session["UsrNme"] != null)
            {


                string EditUsrInfoSQL = @"Update UserInfo SET  FN=@FN, LN=@LN, Password=@Password, RePass=@RePass, Website=@Website, Post=@Post, Email=@Email,
Address=@Address, TeleNum=@TeleNum, Facebook=@Facebook, GooglePlus=@GooglePlus, Twitter=@Twitter, Img=@img Where  UID=@UID";

                EditUsrInfocmd.Connection = EduSRiNFOCon;
                EditUsrInfocmd.CommandType = CommandType.Text;
                EditUsrInfocmd.CommandText = EditUsrInfoSQL;
                EditUsrInfocmd.Parameters.AddWithValue("@UID", ((Label)EditUsrInfoFVw.FindControl("UIDEDLabel")).Text);
                EditUsrInfocmd.Parameters.AddWithValue("@TeleNum", ((TextBox)EditUsrInfoFVw.FindControl("TeleEDTTXTBX")).Text);
                EditUsrInfocmd.Parameters.AddWithValue("@Facebook", ((TextBox)EditUsrInfoFVw.FindControl("FaceEDTTXTBX")).Text);
                EditUsrInfocmd.Parameters.AddWithValue("@GooglePlus", ((TextBox)EditUsrInfoFVw.FindControl("GoogEDTTXTBX")).Text);
                EditUsrInfocmd.Parameters.AddWithValue("@Twitter", ((TextBox)EditUsrInfoFVw.FindControl("TwitEDTTXTBX")).Text);
                EditUsrInfocmd.Parameters.AddWithValue("@img", ((FileUpload)EditUsrInfoFVw.FindControl("EditImgFUP")).FileName);

               var fileUpload = EditUsrInfoFVw.FindControl("EditImgFUP") as FileUpload;

               if (fileUpload != null && fileUpload.HasFile)
               {
                   if (fileUpload.PostedFile.ContentType.ToLower().StartsWith("image/"))
                   {
                       fileUpload.SaveAs(Server.MapPath("~/images/users/" + fileUpload.FileName));
                   }
                   else
                   {
                       // Not an image, handle accordingly
                   }
               }
                EduSRiNFOCon.Open();
                int result = EditUsrInfocmd.ExecuteNonQuery();
                if (result > 0)
                {
                    // Updated successfully;
                }

            }



            ReHPPersInfo();
        }
Posted
Comments
Arasappan 8-Aug-15 0:16am    
while first submission the photo may upload or not

Your problem is while the user doesn't choose a image,
yours code is
SQL
if (fileUpload != null && fileUpload.HasFile)
               {
                   if (fileUpload.PostedFile.ContentType.ToLower().StartsWith("image/"))
                   {
                       fileUpload.SaveAs(Server.MapPath("~/images/users/" + fileUpload.FileName));
                   }
                   else
                   {
                       // Not an image, handle accordingly
                   }
               }
hence the user must select an image to execute on the above condition.
the the else in the if (fileUpload != null && fileUpload.HasFile) is totally useless.


Simply U can understand mean u need two query one is for with image another for without image .the query u written only execute when the user select an image..

small key
if(fileupload.HasFile)
{
query with image update
}
else
{
query without image update
}


C#
if (Session["UsrNme"] != null)
            {


                string EditUsrInfoSQL = @"Update UserInfo SET  FN=@FN, LN=@LN, Password=@Password, RePass=@RePass, Website=@Website, Post=@Post, Email=@Email,
Address=@Address, TeleNum=@TeleNum, Facebook=@Facebook, GooglePlus=@GooglePlus, Twitter=@Twitter, Img=@img Where  UID=@UID";


                string EditUsrInfoSQLWithoutImage = @"Update UserInfo SET  FN=@FN, LN=@LN, Password=@Password, RePass=@RePass, Website=@Website, Post=@Post, Email=@Email,
Address=@Address, TeleNum=@TeleNum, Facebook=@Facebook, GooglePlus=@GooglePlus, Twitter=@Twitter Where  UID=@UID"; 
 //img=@img not to be use
                EditUsrInfocmd.Connection = EduSRiNFOCon;
                EditUsrInfocmd.CommandType = CommandType.Text;
                EditUsrInfocmd.CommandText = EditUsrInfoSQL;
                EditUsrInfocmd.Parameters.AddWithValue(&quot;@UID&quot;, ((Label)EditUsrInfoFVw.FindControl(&quot;UIDEDLabel&quot;)).Text);
                EditUsrInfocmd.Parameters.AddWithValue(&quot;@TeleNum&quot;, ((TextBox)EditUsrInfoFVw.FindControl(&quot;TeleEDTTXTBX&quot;)).Text);
                EditUsrInfocmd.Parameters.AddWithValue(&quot;@Facebook&quot;, ((TextBox)EditUsrInfoFVw.FindControl(&quot;FaceEDTTXTBX&quot;)).Text);
                EditUsrInfocmd.Parameters.AddWithValue(&quot;@GooglePlus&quot;, ((TextBox)EditUsrInfoFVw.FindControl(&quot;GoogEDTTXTBX&quot;)).Text);
                EditUsrInfocmd.Parameters.AddWithValue(&quot;@Twitter&quot;, ((TextBox)EditUsrInfoFVw.FindControl(&quot;TwitEDTTXTBX&quot;)).Text);
                EditUsrInfocmd.Parameters.AddWithValue(&quot;@img&quot;, ((FileUpload)EditUsrInfoFVw.FindControl(&quot;EditImgFUP&quot;)).FileName);

               var fileUpload = EditUsrInfoFVw.FindControl(&quot;EditImgFUP&quot;) as FileUpload;

               if (fileUpload != null &amp;&amp; fileUpload.HasFile)
               {
                   fileUpload.SaveAs(Server.MapPath(&quot;~/images/users/&quot; + fileUpload.FileName));
 EduSRiNFOCon.Open();
                int result = EditUsrInfocmd.ExecuteNonQuery();
                if (result > 0)
                {
                    // Updated successfully;
                }
                }
                   else
                   {
                        EduSRiNFOCon.Open();
                int result = EditUsrInfoSQLWithoutImage.ExecuteNonQuery();
                if (result > 0)
                {
                    // Updated successfully;
                }
                   }
               }
               

            }



            ReHPPersInfo();
        }
 
Share this answer
 
v5
if old image delete
C#
string imageFilePath = Serve.MapPath(@"~/uploaded/imagefilename.extension");
System.IO.File.Delete("imageFilePath");
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900