[英]ASP.net c# SQL. If record combination exists in table, delete the records
我在圖片詳細信息頁面上有一個按鈕,允許用戶將所述圖片添加到當前有效的“收藏夾”中,我只需選擇當前的querystring ID
作為圖片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_id
已經收藏了FK_image_id
,我希望按鈕說“從收藏夾中刪除”
但是我不知道如何檢查fk_user_id
和fk_image_id
的組合fk_image_id
已經存在。 如果是這樣,則應該DELETE FROM
而不是INSERT INTO
。
cmd.CommandText = "SELECT Id FROM Favoritter WHERE (FK_user_id = @fk_user_id and FK_image_id = @fk_image_id)";
...
var reader = cmd.ExecuteReader();
然后檢查返回的數據。
對userid和imageid的組合執行選擇查詢。 如果返回了任何內容,請將其刪除(如果不存在組合,則使用返回的記錄id-將為null),然后輸入新記錄。
我認為從邏輯上刪除記錄可能也會有所幫助,但這將需要更改結構...
您可以在一個查詢中完成此任務。 命令文本將如下所示:
cmd.CommandText =
"IF NOT EXISTS (SELECT * FROM Favoritter"
+ "WHERE FK_bruger_id = @fk_bruger_id AND FK_billede_id = @FK_billede_id)"
+ "BEGIN"
+ "INSERT INTO Favoritter"
+ "(FK_bruger_id, FK_billede_id) VALUES (@fk_bruger_id, @FK_billede_id)";
+ "END"
cmd.Parameters.Add("@FK_billede_id", SqlDbType.Int).Value = nID;
cmd.Parameters.Add("@FK_bruger_id", SqlDbType.Int).Value = Session["bruger_id"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.