Durga
Durga

Reputation: 1303

Getting error : No value given for one or more required parameters

Below Is my Update query ,it was working fine,but when I have added int DrId in parameter fields (at last) to check where condition,after this it is showing me following error

No value given for one or more required parameters. where is the mistake ,since DrId is my Primary Key I won't update it

public bool UpdateDrMaster(string title, string FirstName, string Mname, string lastName, string regNo, string speciality, string contactNo1, string contactNo2, string city, string addrss, string pincode, string emailId, string fee_unit, string fee, string DrType, bool displayType,int DrId)
        {
            bool flag = false;
            try
            {
                string sql = "UPDATE Doctor_Master SET [Title]=@Title,[FirstName]=@FirstName,[MiddleName]=@MiddleName,[LastName]=@LastName,[RegistrationNo]=@RegistrationNo,[Speciality]=@Speciality,[ContactNo_1]=@ContactNo_1,[ContactNo_2]=@ContactNo_2,[City]=@City,[Address]=@Address,[Pincode]=@Pincode,[Email_ID]=@Email_ID,[Fee_Unit]=@Fee_Unit,[Fee]=@Fee,[Type_of_Dr]=@Type_of_Dr,[Display]=@Display,[Hide_Date]=@Hide_Date WHERE Doctor_ID=" +DrId;

                cmd = new OleDbCommand(sql, acccon);
                 cmd.Parameters.AddWithValue("@Title", title);
                 cmd.Parameters.AddWithValue("@FirstName", FirstName);
                 cmd.Parameters.AddWithValue("@MiddleName", Mname);
                 cmd.Parameters.AddWithValue("@LastName", lastName);
                 cmd.Parameters.AddWithValue("@RegistrationNo", regNo);
                 cmd.Parameters.AddWithValue("@Speciality", speciality);
                 cmd.Parameters.AddWithValue("@ContactNo_1", contactNo1);
                 cmd.Parameters.AddWithValue("@ContactNo_2", contactNo2);
                 cmd.Parameters.AddWithValue("@City", city);
                 cmd.Parameters.AddWithValue("@Address", addrss);
                 cmd.Parameters.AddWithValue("@Pincode", pincode);
                 cmd.Parameters.AddWithValue("@Email_ID", emailId);
                 cmd.Parameters.AddWithValue("@Fee_Unit", fee_unit);
                 cmd.Parameters.AddWithValue("@Fee", fee);
                 cmd.Parameters.AddWithValue("@Type_of_Dr", DrType);
                 cmd.Parameters.AddWithValue("@Display", displayType);
                 cmd.Parameters.AddWithValue("@Hide_Date", System.DateTime.Now.ToShortDateString());                            
                cmd.ExecuteNonQuery();
                flag = true;
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message.ToString());
            }
            return flag;
        }

Upvotes: 2

Views: 1047

Answers (2)

user240141
user240141

Reputation:

Why not try this one!!! Replace you parameter name with ?

 public bool UpdateDrMaster(string title, string FirstName, string Mname, 
    string lastName, string regNo, string speciality, string contactNo1, 
    string contactNo2, string city, string addrss, string pincode, string emailId, 
    string fee_unit, string fee, string DrType, bool displayType,int DrId)
            {
                bool flag = false;
                try
                {
                    string sql = "UPDATE Doctor_Master SET Title=?FirstName=?,
    MiddleName=?,LastName=?,RegistrationNo=?,Speciality=?,ContactNo_1=?,
    ContactNo_2=?,City=?,Address=?,Pincode=?,Email_ID=?,Fee_Unit=?,Fee=?,
    Type_of_Dr=?,Display=?,Hide_Date=? WHERE Doctor_ID=?";

                    cmd = new OleDbCommand(sql, acccon);
                     cmd.Parameters.AddWithValue("@Title", title);
                     cmd.Parameters.AddWithValue("@FirstName", FirstName);
                     cmd.Parameters.AddWithValue("@MiddleName", Mname);
                     cmd.Parameters.AddWithValue("@LastName", lastName);
                     cmd.Parameters.AddWithValue("@RegistrationNo", regNo);
                     cmd.Parameters.AddWithValue("@Speciality", speciality);
                     cmd.Parameters.AddWithValue("@ContactNo_1", contactNo1);
                     cmd.Parameters.AddWithValue("@ContactNo_2", contactNo2);
                     cmd.Parameters.AddWithValue("@City", city);
                     cmd.Parameters.AddWithValue("@Address", addrss);
                     cmd.Parameters.AddWithValue("@Pincode", pincode);
                     cmd.Parameters.AddWithValue("@Email_ID", emailId);
                     cmd.Parameters.AddWithValue("@Fee_Unit", fee_unit);
                     cmd.Parameters.AddWithValue("@Fee", fee);
                     cmd.Parameters.AddWithValue("@Type_of_Dr", DrType);
                     cmd.Parameters.AddWithValue("@Display", displayType);
                     cmd.Parameters.AddWithValue("@Hide_Date", System.DateTime.Now.ToShortDateString()); 
      cmd.Parameters.AddWithValue("@DrId", DrId);                           
                    cmd.ExecuteNonQuery();
                    flag = true;
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message.ToString());
                }
                return flag;
            }

Another Possible reason

Match your Db column name with the queries column. See if any character is misplaced or miss-spelled

Upvotes: 1

Kurubaran
Kurubaran

Reputation: 8902

You have Doctor_Id in your Update query but you are not setting a value for it. Even though you are not going to update its value you have to set a value for it as its part of your where clase.

string sql = "UPDATE Doctor_Master SET [Title]=@Title,[FirstName]=@FirstName,[MiddleName]=@MiddleName,[LastName]=@LastName,[RegistrationNo]=@RegistrationNo,[Speciality]=@Speciality,[ContactNo_1]=@ContactNo_1,[ContactNo_2]=@ContactNo_2,[City]=@City,[Address]=@Address,[Pincode]=@Pincode,[Email_ID]=@Email_ID,[Fee_Unit]=@Fee_Unit,[Fee]=@Fee,[Type_of_Dr]=@Type_of_Dr,[Display]=@Display,[Hide_Date]=@Hide_Date WHERE Doctor_ID=" +DrId;

Upvotes: 1

Related Questions