数据库上的值在每次操作后自动递增/递减

本文关键字:递减 操作 数据库 | 更新日期: 2023-09-27 18:35:23

目前我正在做一个简单的项目,用户输入他的家庭详细信息并将该详细信息保存到数据库中。他可以使用这些值生成PDF,在创建PDF之前,我已经提供了编辑或添加成员详细信息的选项。代码如下

将值插入数据库的代码:

var connString = ConfigurationManager.ConnectionStrings["KMDContext"].ConnectionString;
                    SqlConnection con = new SqlConnection(connString);
                    con.Open();
                    string DeleteFamily = "DELETE  FROM family WHERE UserProfileID='" + Convert.ToInt32(Session["UserId"].ToString()) + "' ";
                    System.Data.SqlClient.SqlCommand cmdFamilyDelete = new System.Data.SqlClient.SqlCommand(DeleteFamily, con);
                    cmdFamilyDelete.ExecuteNonQuery();
                    if (Family != null)
                    {
                        DateTime DOB = DateTime.Now;
                        for (int i = 0; i < Family.Count; i++)
                        {
                            int Age = Convert.ToInt32(Family[i].Age);
                            DOB = DOB.AddYears(-(Age));
                            string InsertFamily = "INSERT INTO family (UserProfileID ,Name,Relation,DOB,Job) VALUES('" + Convert.ToInt32(Session["UserId"].ToString()) + "','" + Family[i].Name + "','" + Family[i].Relation + "','" + DOB + "','" + Family[i].Job + "')";
                            System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(InsertFamily, con);
                            cmd.ExecuteNonQuery();
                        }
                    }

年龄计算是使用 javascript 完成

var dob = new Date(element.DateOFBirth);
var today = new Date();
var age = (today.getFullYear() - dob.getFullYear());

用户必须输入其家庭成员的年龄,我需要将出生日期(近似值)保存到数据库中。

我的问题

在每一代PDF之后,一个完全不同的年龄值被保存到数据库中。(用户第一次保存27岁的家庭成员,生成PDF后,此值自动更改为37

代码中有什么问题吗?

问题的确切原因是什么?

数据库上的值在每次操作后自动递增/递减

您应该在 for 循环中设置DateTime DOB = DateTime.Now;。否则,当您家中有多个人时,它将计算出错误的值。

假设人 1 是 10 岁,人 2 是 20 岁。人 1:出生日期将是 2016-10=2006。人 2:出生日期将是 2006-20=1986。