Click here to Skip to main content
15,897,226 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I am working on my semester project on which i have made a form for user to build his profile. but on inserting getting an error of System.ArgumentException: No mapping exists from object type System. on line No: 101 ( that is db1.sqlcmd.ExecuteScalar();)

HERE IS MY CODE
C#
protected void BttnSumbit_Click(object sender, EventArgs e)
    {

        string message = string.Empty;
        try
        {
            if (AppUserimgUpload.PostedFile != null)
            {
                FileName = Path.GetFileName(AppUserimgUpload.PostedFile.FileName);

                //Save files to disk
                AppUserimgUpload.SaveAs(Server.MapPath("Images/" + FileName));
            }
            db1.sqlcmd = new SqlCommand("uspSetUserPassword");

            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                db1.sqlcmd.CommandType = CommandType.StoredProcedure;
                db1.sqlcmd.Parameters.AddWithValue("@Password", TxtBxConfirmPassword.Text.Trim());
                db1.sqlcmd.Parameters.AddWithValue("@UserID", userId);
                db1.sqlcmd.Parameters.AddWithValue("@Fathername", TxtBxFathername.Text.Trim());
                db1.sqlcmd.Parameters.AddWithValue("@DOB", Convert.ToDateTime(TxtBxDob.Text.Trim()).ToString("MM-dd-yyyy"));
                db1.sqlcmd.Parameters.AddWithValue("@WorkPhone", TxtBxWorkPhone.Text.Trim());
                db1.sqlcmd.Parameters.AddWithValue("@Avatar", FileName);
                db1.sqlcmd.Parameters.AddWithValue("@AvatarPath", "images/" + FileName);
                db1.sqlcmd.Parameters.AddWithValue("@OfficeProvince",DDProvince.SelectedItem.ToString());
                db1.sqlcmd.Parameters.AddWithValue("@OfficeCity", DDCity.SelectedItem.Text);
                db1.sqlcmd.Parameters.AddWithValue("@OfficeAddress", TxtBxOfficAdres.Text.Trim());
                db1.sqlcmd.Parameters.AddWithValue("@Partyid", DDProvince.SelectedValue);
                db1.sqlcmd.Parameters.AddWithValue("@PartyJoiningDate", Convert.ToDateTime(TxtBxPartyJoiningDate.Text.Trim()).ToString("MM-dd-yyyy"));
                db1.sqlcmd.Parameters.AddWithValue("@Constituency", DDConstituency.SelectedItem);
                db1.sqlcmd.Connection = db1.sqlcon;
                db1.sqlcon.Open();
                db1.sqlcmd.ExecuteScalar();
            }
        }
        catch (Exception ex)
        {
            Response.Write(ex);
        }
        finally
        {
            db1.sqlcon.Close();
            message = "Registration Completed, Click Ok and You Will be Redirct to the Login Page";
            //Response.Redirect("CandLogin.aspx");
        }
    }


Here is the Store Procedure
SQL
CREATE PROC uspSetUserPassword
@Password VARCHAR(20),@UserID int,@Fathername Varchar(30),@DOB date,@WorkPhone Varchar(25),@Avatar varchar(50),
@AvatarPath varchar (max),@OfficeProvince Varchar(15),@OfficeCity Varchar(15),@OfficeAddress Varchar(max),
@Partyid int,@PartyJoiningDate date,@CId int
AS
BEGIN
UPDATE TblAppUser SET UserPassword = @Password WHERE  UserId = @UserID
UPDATE TblCandidateDetails SET FatherName = @Fathername , DateofBirth = @DOB , Avatar = @Avatar 
 , AvatarFilePath = @AvatarPath , OfficeAddress = @OfficeAddress ,City = @OfficeCity
 , Proivnce = @OfficeProvince , WorkPhone = @WorkPhone Where UserId = @UserID
INSERT INTO TblBridgeCandParty (UserID,PartyID,JoiningDate) VALUES (@UserID,@Partyid,@PartyJoiningDate)
INSERT INTO TblBridgeUserConstituency (UserId,ConstituencyID) VALUES (@UserID,@CId)
END
Posted

1 solution

you need to call DDConstituency.SelectedItem.ToString() and also no need to call .ToString("MM-dd-yyyy") for PartyJoiningDate parameter
db1.sqlcmd.Parameters.AddWithValue("@PartyJoiningDate", Convert.ToDateTime(TxtBxPartyJoiningDate.Text.Trim()));
 
Share this answer
 
v2

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