2 раза данные вставляются(дублируются) 3-уровневой архитектурой
Кодовый метод слоя данных
public int AddUsers(Users objUser) { SqlConnection con = new SqlConnection(ConnString); con.Open(); SqlCommand cmd = new SqlCommand("SpCreateUser", con); cmd.CommandType = CommandType.StoredProcedure; try { cmd.Parameters.AddWithValue("@Full_name", objUser.fullname); cmd.Parameters.AddWithValue("@Dob", objUser.DOB); cmd.Parameters.AddWithValue("@email", objUser.Email); cmd.Parameters.AddWithValue("@phoneno", objUser.Phoneno); cmd.Parameters.AddWithValue("@loginid", objUser.loginId); cmd.Parameters.AddWithValue("@pwd", objUser.Password); cmd.ExecuteNonQuery(); int totalrecordscreated = (int)cmd.ExecuteNonQuery(); return totalrecordscreated; } catch (Exception ex) { throw ex; } finally { con.Close(); } }
Метод бизнес-уровня :
public int AddUsers(Users objUser) { DataLayer objUserDAL = new DataLayer(); try { return objUserDAL.AddUsers(objUser); } catch (Exception ex) { throw ex; } finally { //objUser = null; } }
Слой пользовательского интерфейса - зарегистрируйтесь.aspx-файл.в CS
protected void btnRegsubmit_Click(object sender, EventArgs e) { Users objUser = new Users(); objUser.fullname = tbfullname.Text; objUser.DOB = tbdob.Text; objUser.Email = tbemail.Text; objUser.Phoneno = tbphoneno.Text; objUser.loginId = tbloginid.Text; objUser.Password = tbpwd.Text; BAL objBAL = new BAL(); int records_no = objBAL.AddUsers(objUser); Response.Write("No of created records " + records_no.ToString()); }
данные:
Trans_id Date Person_id Payee_details Amount Expense_Type 20 2018-08-27 admin food panda 254 Food 21 2018-08-27 admin VRl 600 Travel 22 2018-08-14 sam rewgrg 564 Food 23 2018-08-14 sam rewgrg 564 Food
наличие интерфейсов для слоев DAL и BLL. после подачи данных записи вставляются два раза(дублирование.) Какая логика здесь ошибочна?
Что я уже пробовал:
Помогите мне, так как я новичок в кодировании, не понимая, какая логика создает эту проблему
Vincent Maverick Durano
Вы нажали кнопку обновить браузер или, возможно, дважды нажали на кнопку? Вы пробовали отлаживать свой код и устанавливать точку останова в событии нажатия кнопки?
Virendra S from Bangalore, Karnataka
Нет, я запускал cmd.ExecuteNonQuery(); дважды в коде, теперь correctd
Gerry Schmitz
Почему вы проигнорировали хранимую процедуру (SpCreateUser)?
"Один" дубликат не является "шаблоном"; вам нужно сделать больше тестов.