Click here to Skip to main content
15,887,249 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi
I am facing a error with below code as i am trying to test the code by adding .docx file where it suppose to go to part of code as below but i am getting error message which is: ExecuteNonQuery: Connection property has not been initialized. i have tried to move EdPersInfoCon.Open(); to the beginning after declaring new connection but is the same


C#
        protected void editHPPersInfobtn_Click(object sender, EventArgs e)
        {
            SqlConnection EdPersInfoCon = new SqlConnection(sc);
            SqlCommand EditUsrInfoCMD = new SqlCommand();
            EditUsrInfoCMD.Connection = EdPersInfoCon;

            var UsrNme = Session["UsrNme"];

            string FileExtentiona = System.IO.Path.GetExtension(EditImgFUP.FileName);
            string FileExtentiona2 = System.IO.Path.GetExtension(EditPersInfologoFileUp.FileName);
            string FileExtentiona3 = System.IO.Path.GetExtension(EditPesInfoBizImg1FU.FileName);
            string FileExtentiona4 = System.IO.Path.GetExtension(EditPesInfoBizImg2FU.FileName);
            string FileExtentiona5 = System.IO.Path.GetExtension(EditPesInfoBizImg3FU.FileName);

            if (Session["UsrNme"] != null)
            {
                if (EditImgFUP.HasFile || EditPersInfologoFileUp.HasFile || EditPesInfoBizImg1FU.HasFile || EditPesInfoBizImg2FU.HasFile || EditPesInfoBizImg3FU.HasFile)
                {
                    //if we upload .doc file,
                    if (EditImgFUP.PostedFile.ContentType.ToLower().StartsWith("image/") ||
                    EditPersInfologoFileUp.PostedFile.ContentType.ToLower().StartsWith("image/") ||
                    EditPesInfoBizImg1FU.PostedFile.ContentType.ToLower().StartsWith("image/") ||
                    EditPesInfoBizImg2FU.PostedFile.ContentType.ToLower().StartsWith("image/") ||
                    EditPesInfoBizImg3FU.PostedFile.ContentType.ToLower().StartsWith("image/"))
                    {
                        var files = new[] { FileExtentiona, FileExtentiona2, FileExtentiona3, FileExtentiona4, FileExtentiona5 };
                        var extensions = new[] { ".jpg", ".png" };
                        if ((files.Intersect(extensions).Count()) > 0)
                        {

                            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, Logo=@Logo, image1=@image1, image2=@image2, image3=@image3 Where UID=@UID";

                            EditUsrInfoCMD.Connection = EdPersInfoCon;
                            EditUsrInfoCMD.CommandType = CommandType.Text;
                            EditUsrInfoCMD.CommandText = EditUsrInfoSQL;

                            EditUsrInfoCMD.Parameters.AddWithValue("@UID", UsrNme);
                            EditUsrInfoCMD.Parameters.AddWithValue("@FN", FNEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@LN", LNEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@Password", PASSEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@RePass", REPASEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@Website", REWEBSITETXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@Post", PSOTEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@Address", AddEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@Email", EMAEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@TeleNum", TeleEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@Facebook", FaceEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@GooglePlus", GoogEDTTXTBX.Text);
                            EditUsrInfoCMD.Parameters.AddWithValue("@Twitter", TwitEDTTXTBX.Text);

                            string imgnouser = "/images/general/nouser.jpg";

                            string[] imagesUI = GetImagess(Convert.ToString(UsrNme));

                            if (EditImgFUP.HasFile)
                            {
                                EditUsrInfoCMD.Parameters.AddWithValue("@Img", EditImgFUP.FileName);
                                EditImgFUP.SaveAs(Server.MapPath("~/images/users/" + EditImgFUP.FileName));

                            }
                            else
                            {
                                if (string.IsNullOrEmpty(imagesUI[0]))
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@Img", imgnouser);
                                }
                                else
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@Img", imagesUI[0]);
                                }

                                
                            }


                            if (EditPersInfologoFileUp.HasFile)
                            {
                                EditUsrInfoCMD.Parameters.AddWithValue("@Logo", EditPersInfologoFileUp.FileName);
                                EditPersInfologoFileUp.SaveAs(Server.MapPath("~/images/Logos/" + EditPersInfologoFileUp.FileName));

                            }
                            else
                            {
                                if (string.IsNullOrEmpty(imagesUI[1]))
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@Logo", imgnouser);
                                }
                                else
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@Logo", imagesUI[1]);
                                }
                                
                            }

                            if (EditPesInfoBizImg1FU.HasFile)
                            {
                                EditUsrInfoCMD.Parameters.AddWithValue("@image1", EditPesInfoBizImg1FU.FileName);
                                EditPesInfoBizImg1FU.SaveAs(Server.MapPath("~/images/BizImgs/" + EditPesInfoBizImg1FU.FileName));

                            }
                            else
                            {
                                if (string.IsNullOrEmpty(imagesUI[2]))
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@image1", imgnouser);
                                }
                                else
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@image1", imagesUI[2]);
                                }

                            }


                            if (EditPesInfoBizImg2FU.HasFile)
                            {
                                EditUsrInfoCMD.Parameters.AddWithValue("@image2", EditPesInfoBizImg2FU.FileName);
                                EditPesInfoBizImg2FU.SaveAs(Server.MapPath("~/images/BizImgs/" + EditPesInfoBizImg2FU.FileName));

                            }
                            else
                            {
                                if (string.IsNullOrEmpty(imagesUI[3]))
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@image2", imgnouser);
                                }
                                else
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@image2", imagesUI[3]);
                                }

                            }

                            if (EditPesInfoBizImg3FU.HasFile)
                            {
                                EditUsrInfoCMD.Parameters.AddWithValue("@image3", EditPesInfoBizImg3FU.FileName);
                                EditPesInfoBizImg3FU.SaveAs(Server.MapPath("~/images/BizImgs/" + EditPesInfoBizImg3FU.FileName));

                            }
                            else
                            {
                                if (string.IsNullOrEmpty(imagesUI[4]))
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@image3", imgnouser);
                                }
                                else
                                {
                                    EditUsrInfoCMD.Parameters.AddWithValue("@image3", imagesUI[4]);
                                }

                            }
                        }
                        else
                        {
                            EditPersInfoImgFrmtWarnLbl.Text = "The file should have .png or .jpg format only";
                            EditPersInfoImgFrmtWarnLbl.ForeColor = System.Drawing.Color.Red;
                        }
                    }
          

                }
                    else
                    {

                        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 Where
UID=@UID";

                        EditUsrInfoCMD.Connection = EdPersInfoCon;
                        EditUsrInfoCMD.CommandType = CommandType.Text;
                        EditUsrInfoCMD.CommandText = EditUsrInfoSQL;

                        EditUsrInfoCMD.Parameters.AddWithValue("@UID", UsrNme);
                        EditUsrInfoCMD.Parameters.AddWithValue("@FN", FNEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@LN", LNEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@Password", PASSEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@RePass", REPASEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@Website", REWEBSITETXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@Post", PSOTEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@Address", AddEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@Email", EMAEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@TeleNum", TeleEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@Facebook", FaceEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@GooglePlus", GoogEDTTXTBX.Text);
                        EditUsrInfoCMD.Parameters.AddWithValue("@Twitter", TwitEDTTXTBX.Text);
                    }

      
                    EdPersInfoCon.Open();
                    int result = EditUsrInfoCMD.ExecuteNonQuery();
                    if (result > 0)
                    {
                        // Updated successfully;
                    }
                    EdPersInfoCon.Close();
                    
       
                EditUsrPan.Visible = false;
                showusrinfo.Visible = true;
                ReHPPersInfo();

            }
        }
Posted

The connection is not initialized.
Add the following before you initialize the command EdPersInfoCon.Open();.
 
Share this answer
 
v2
I'm not sure if the connection of the EditUsrInfoCMD gets set in all cases. Depending on the execution of the if branches, the connection property may be empty (and perhaps the command text also).

So I suggest using the using blocks and separate the commands. This would help to see any potential problems in the code structure and also dispose the objects properly.

In other words, in the beginning:
C#
protected void editHPPersInfobtn_Click(object sender, EventArgs e)
{
    using(SqlConnection EdPersInfoCon = new SqlConnection(sc))
    {
        //SqlCommand EditUsrInfoCMD = new SqlCommand();
        //EditUsrInfoCMD.Connection = EdPersInfoCon;
 
        var UsrNme = Session["UsrNme"];
     
        string FileExtentiona = System.IO.Path.GetExtension(EditImgFUP.FileName);
...

And later on
C#
...
    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, Logo=@Logo, image1=@image1, image2=@image2, image3=@image3 Where UID=@UID";
                     
    using (SqlCommand EditUsrInfoCMD = new SqlCommand(EditUsrInfoSQL, EdPersInfoCon))
    {
        //EditUsrInfoCMD.Connection = EdPersInfoCon;
        //EditUsrInfoCMD.CommandType = CommandType.Text;
        //EditUsrInfoCMD.CommandText = EditUsrInfoSQL;
 
        EditUsrInfoCMD.Parameters.AddWithValue("@UID", UsrNme);
        EditUsrInfoCMD.Parameters.AddWithValue("@FN", FNEDTTXTBX.Text);
...
 
Share this answer
 
Hi,

As per my understanding your code blocks you are open connection after perform command object, instead of that I request you to open connection after connection string declaration completed. Using this you can achieve your goal with out facing this type of issues, and make sure use "using" blocks as "Mika Wendeius" suggested this will clear the unnecessary instance once block closed.
 
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