Как обновить пароль и сохранить запись текущего пароля в другой таблице
Я работаю в dot net с c# , LINQ и SQL server в качестве базы данных
У меня есть три таблицы s_reg,s_log,s_pass
s_reg имеет первичный ключ reg_id,s_log имеет log_id и reg_id в качестве первичного и внешнего ключа соответственно,s_pass имеет pass_id и log_id в качестве первичного и внешнего ключа
Я хочу обновить пароль идентификатора в s_reg и сохранить старый пароль в таблице s_pass, а также обновить новый пароль в таблице s_log с помощью reg_id
я обновил столбец пароля в s_reg, но он принимает только reg_id(так как он находится на автоматическом инкременте) и новый пароль вместо старого и показывает оставшиеся поля как NULL
также изменения происходят в таблицах s_log и s_pass, но обе они не принимают reg_id, столбец reg_id показывает либо NULL, либо 0
Что я уже пробовал:
protected void Button1_Click(object sender, EventArgs e) { using (studentDataContext ps = new studentDataContext()) { var check = (from m in ps.s_regs join s in ps.s_logs on m.reg_id equals s.reg_id where s.susnm == TextBox1.Text && s.spass == TextBox2.Text select new { s, m }).FirstOrDefault(); if (check != null) { try { s_log log = new s_log(); using (studentDataContext database = new studentDataContext())//update column { var up = ps.s_regs.Where(a => a.spass == TextBox2.Text).FirstOrDefault(); if (up != null) { s_reg reg = new s_reg(); reg.spass = TextBox2.Text; ps.s_regs.InsertOnSubmit(reg); ps.SubmitChanges(); Response.Write("<script>alert('save successfuly');</script>"); } else { up.spass = TextBox3.Text; log.reg_id = reg.reg_id; ps.SubmitChanges(); Response.Write("<script>alert('Update successfuly');</script>"); } } s_pass ureg = new s_pass(); var chk = (from m in ps.s_passes join n in ps.s_regs on m.reg_id equals n.reg_id select new { m.ppass, n.sname }).FirstOrDefault(); if (chk != null) { try { ureg.pname = TextBox5.Text; ureg.puname = TextBox1.Text; ureg.ppass = TextBox2.Text; ureg.reg_id = reg.reg_id; ps.s_passes.InsertOnSubmit(ureg); ps.SubmitChanges(); } catch (Exception ex) { Response.Write("Error:" + ex.Message); } var query = (from ord in ps.s_logs join trd in ps.s_regs on ord.reg_id equals trd.reg_id where trd.susnm == TextBox1.Text select new { ord, trd }).FirstOrDefault(); if (query != null) { try { log.susnm = TextBox1.Text; log.spass = TextBox3.Text; log.reg_id = reg.reg_id; ps.s_logs.InsertOnSubmit(log); ps.SubmitChanges(); } catch (Exception ex) { Response.Write("Error:" + ex.Message); } } } else { ScriptManager.RegisterStartupScript(Page, Page.GetType(), "str", "alert(' please check user name and password ');", true); } } catch (Exception ex) { Response.Write("Error:" + ex.Message); } } } }