ASP.net c#SQL。如果表中存在记录组合,则删除记录

时间:2015-10-02 08:40:16

标签: c# sql asp.net sql-server

我在图片详情页面上有一个按钮,允许用户将所述图片添加到当前有效的“收藏夹”中,我只选择当前$qry = mysqli_query("select * from tbl_users where usr='$unm' and pwd='$pwd'"); $rec_count = mysqli_num_rows($qry); if($rec_count == 1){ while($row = mysqli_fetch_array($qry)){ echo "Welcome " . ucfirst($row['fname']) . "!"; } } 作为图片querystring ID,以及{{ 1}}作为用户id并将其插入名为session["bruger_id"]

的表中

我是怎么做到的:

Id

所以我的问题是: 如果用户已将图像添加到收藏夹,他当前可以反复执行,并且不止一次添加相同的图像作为收藏夹,这是不好的。 所以如果"favoritter"已经收藏protected void Button_favorit_Click(object sender, EventArgs e) { if (Session["bruger_id"] != null) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ToString(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; int nID = int.Parse(Request.QueryString["ID"].ToString()); cmd.CommandText = "INSERT INTO Favoritter" + "(FK_bruger_id, FK_billede_id) VALUES (@fk_bruger_id, @FK_billede_id)"; cmd.Parameters.Add("@FK_billede_id", SqlDbType.Int).Value = nID; cmd.Parameters.Add("@FK_bruger_id", SqlDbType.Int).Value = Session["bruger_id"]; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); Label_favorit.Text = "Billedet blev tilføjet til Favoritter."; } else { Label_favorit.Text = "Logind for at tilføje som favorit"; } }

,我希望按钮说“从收藏中删除”

但我不知道如何检查fk_user_idFK_image_id的组合是否已经存在。如果是,则应fk_user_id而不是fk_image_id

3 个答案:

答案 0 :(得分:1)

cmd.CommandText = "SELECT Id FROM Favoritter WHERE (FK_user_id = @fk_user_id and FK_image_id = @fk_image_id)";
...
var reader = cmd.ExecuteReader();

然后检查返回的数据。

答案 1 :(得分:0)

对userid和imageid的组合执行选择查询。如果返回任何内容,则删除它(使用返回的记录id-如果组合不存在则为null)并输入新记录。

我认为逻辑删除记录也可能有所帮助,但这需要更改结构......

答案 2 :(得分:0)

您可以在一个查询中完成此任务。命令文本如下所示:

--cached