我在db中有一个表,用于存储用户名,月份,费用和价格。用户将从下拉菜单中选择月份。任何一个月。但是让我们说如果他之前已经选择了1月,那么如果他再次登录并再次选择1月,那么系统将用新的记录替换1月份的旧记录。我的问题是,如果用户选择与以前相同的月份,如何在db中替换?
谢谢
答案 0 :(得分:3)
作为查询的一部分进行检查,如果月份条目已存在,请执行更新而不是插入:
IF NOT EXISTS (select * from ExpTab where month = @mnth)
BEGIN
Insert into ExpTab (username,month,ex1,p1) Values (@name,@mnth,@ex1s,@p1s)
END
ELSE
Update ExpTab Set username = @name, ex1 = @ex1s, p1 = @p1s where month = @mnth
答案 1 :(得分:1)
试试这个:
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
SqlCommand deleteCmd = new SqlCommand("DELETE FROM ExpTab WHERE username = @name AND month = @mnth", conn);
deleteCmd.CommandType = CommandType.Text;
deleteCmd.Parameters.AddWithValue("@name", Membership.GetUser().UserName);
deleteCmd.Parameters.AddWithValue("@mnth", Label1.Text);
deleteCmd.ExecuteNonQuery();
SqlCommand cmd = new SqlCommand("Insert into ExpTab (username,month,ex1,p1) Values (@name,@mnth,@ex1s,@p1s)", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@name", Membership.GetUser().UserName);
cmd.Parameters.AddWithValue("@mnth", Label1.Text);
.
.
.
.