制作一个按钮,每个用户只能单机一次,同时它对于后台的数据库里的一个int字段做+1处理解决办法
制作一个按钮,每个用户只能单机一次,同时它对于后台的数据库里的一个int字段做+1处理
我要做一个会议的关注按钮,每个用户可以在页面中点击一次这个按钮。从而使得这个会议的关注度字段HOT_meet+1,别人给我的提示是:
加1的功能,通过SQL的UPDATE语句就可以实现.
控制只能点一次,这个可以通过在另一个表中保存用户名和已点击的记录号, 在UPDATE之前检查是否有对应的记录存在,如果没有,就执行UPDATE并向这个表插入点击记录,否则不执行UPDATE语句.
于是我用了个Imagebutton写了一个单击事件。代码如下, 但问题是。我总是只执行2sql语句中的一个。要么是给一个表中的HOT_meet+1 要么就是给另一个表里insert用户名和会议名的联系。
带
请问这是什么原因?不能同时两个cmd命令么?。 如果我全用CMD 不用cmd2.他就只运行insert。而我用了CMD2它只运行update
------解决方案--------------------
你cmd2都没执行啊,怎么插入?
------解决方案--------------------
cmd2再执行一下啊。。
int i = cmd.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
我要做一个会议的关注按钮,每个用户可以在页面中点击一次这个按钮。从而使得这个会议的关注度字段HOT_meet+1,别人给我的提示是:
加1的功能,通过SQL的UPDATE语句就可以实现.
控制只能点一次,这个可以通过在另一个表中保存用户名和已点击的记录号, 在UPDATE之前检查是否有对应的记录存在,如果没有,就执行UPDATE并向这个表插入点击记录,否则不执行UPDATE语句.
于是我用了个Imagebutton写了一个单击事件。代码如下, 但问题是。我总是只执行2sql语句中的一个。要么是给一个表中的HOT_meet+1 要么就是给另一个表里insert用户名和会议名的联系。
带
- C# code
protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { SqlConnection con = new SqlConnection(); con.ConnectionString = "server=(local);database=Meet;Integrated Security=SSPI";// 创建命令(SqlCommand)对象(cmd) SqlCommand cmd = new SqlCommand(); cmd.Connection = con; // 指示命令发给哪个数据库 cmd.CommandType = CommandType.Text; // 指示是什么类型的命令 cmd.CommandText = "select * from [care] where NAME_user = '" + this.Label3.Text.ToString() + " ' and TITLE_meet = '" + this.titlelabel.Text.ToString() + " '"; con.Open(); SqlDataReader reader = cmd.ExecuteReader(); try { if (reader.Read()) { reader.Close(); Response.Write(" <script>alert(' 您已关注过此会议 ') </script>"); } else { reader.Close(); cmd.CommandText = "update [meet] set HOT_meet = HOT_meet + 1 where TITLE_meet='" + this.titlelabel.Text.ToString() + "'"; SqlCommand cmd2 = new SqlCommand(); cmd2.Connection = con; cmd2.CommandType = CommandType.Text; cmd2.CommandText = "insert into [care](NAME_user,TITLE_meet) values(@nameuser,@meettitle)"; cmd2.Parameters.Add("@nameuser",SqlDbType.VarChar,50); cmd2.Parameters["@nameuser"].Value = Label3.Text; cmd2.Parameters.Add("@meettitle", SqlDbType.VarChar,100); cmd2.Parameters["@meettitle"].Value = titlelabel.Text; int i = cmd.ExecuteNonQuery(); Response.Write("<script>alert('您已经关注成功');</script>"); hotlabel.Text = Convert.ToString(Convert.ToInt32(hotlabel.Text) + 1); } con.Close(); } catch { } }
请问这是什么原因?不能同时两个cmd命令么?。 如果我全用CMD 不用cmd2.他就只运行insert。而我用了CMD2它只运行update
------解决方案--------------------
你cmd2都没执行啊,怎么插入?
------解决方案--------------------
cmd2再执行一下啊。。
int i = cmd.ExecuteNonQuery();
cmd2.ExecuteNonQuery();