数据库上的值在每次操作后自动递增/递减
本文关键字:递减 操作 数据库 | 更新日期: 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。