Hi,
In my app I have an update action to update the customers records in the back-end. Further, as I know it's supposed to save any updates or non (null) when one field wasn't changed. However, when I try to click save I'm getting a sql error, that the "MobileNumber" was not supplied.
Here is my data tier class:
- #region Update rider's info
- public bool updateRiders(RidersModel rider)
- {
- query = "UPDATE Users SET firstName = @firstName," +
- " lastName = @lastName, email = @email, Address = @Address," +
- " MobileNumber = @MobileNumber, city = @city," +
- "state = @state, zipCode = @zipCode, UserName =@UserName, users_Id = @users_Id " +
- "WHERE usersId = @ID;";
- conn = new SqlConnection(connectionString);
- cmd = new SqlCommand(query, conn);
- cmd.Parameters.Add("@ID", SqlDbType.Int).Value = rider.usersId;
- cmd.Parameters.Add("@firstName", SqlDbType.VarChar, 255).Value = rider.firstName;
- cmd.Parameters.Add("@lastName", SqlDbType.VarChar, 255).Value = rider.lastName;
- cmd.Parameters.Add("@email", SqlDbType.VarChar, 255).Value = rider.email;
- cmd.Parameters.Add("@Address", SqlDbType.VarChar, 255).Value = rider.Address;
- cmd.Parameters.Add("@city", SqlDbType.VarChar, 255).Value = rider.city;
- cmd.Parameters.Add("@state", SqlDbType.VarChar, 255).Value = rider.state;
- cmd.Parameters.Add("@zipCode", SqlDbType.Int).Value = rider.zipCode;
- cmd.Parameters.Add("@MobileNumber", SqlDbType.VarChar, 200).Value = rider.mobileNumber;
- cmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 256).Value = rider.UserName;
- cmd.Parameters.Add("@users_Id", SqlDbType.NVarChar, 128).Value = rider.userID;
- try
- {
- conn.Open();
- rows = cmd.ExecuteNonQuery();
- if (rows > 0)
- {
- success = true;
- }
- }
- catch (SqlException ex)
- {
- throw new Exception(ex.Message);
- }
- finally
- {
- conn.Close();
- }
- return success;
- }
- [HttpGet]
- public async Task
EditRiders( int id) - {
- var userStore = new UserStore
(); - var userManager = new UserManager
( new UserStore( new RidesDbContext())); - IdentityUser theUser = new IdentityUser();
- theUser = await userManager.FindByIdAsync(User.Identity.GetUserId());
- RidersModel rider = new RidersModel();
- RidersTier tier = new RidersTier();
- rider.email = theUser.UserName;
- rider.email = theUser.Email;
- rider.mobileNumber = theUser.PhoneNumber;
- rider.Password = theUser.PasswordHash;
- rider.userID = theUser.Id;
- rider = tier.getRidersById(id);
- return View(rider);
- }
- [HttpPost]
- public async Task
EditRiders(RidersModel rider) - {
- var userStore = new UserStore
(); - var userManager = new UserManager
( new UserStore( new RidesDbContext())); - IdentityUser theUser = new IdentityUser();
- if (ModelState.IsValid)
- {
- theUser = await userManager.FindByIdAsync(User.Identity.GetUserId());
- rider.email = theUser.UserName;
- rider.email = theUser.Email;
- rider.mobileNumber = theUser.PhoneNumber;
- rider.Password = theUser.PasswordHash;
- rider.userID = theUser.Id;
- RidersTier tier = new RidersTier();
- tier.updateRiders(rider);
- }
- TempData["ad"] = "User info has been updated";
- return View(rider);
- }
Is there any reason for that?
I tried to provide the parameter variables in the order that they appear in the query statement, but that didn't help.
I would appreciate your help. Thank you.
Hadeel ePosted May 2, 2020, 1:35 AM
Salman BegPosted May 2, 2020, 12:29 AM
Hadeel ePosted May 2, 2020, 12:12 AM
Rajanikant HawaldarPosted May 1, 2020, 10:44 PM
Salman BegPosted May 1, 2020, 10:25 PM
Jignesh KumarPosted May 1, 2020, 10:25 PM