[英]How to check if a value already exists in my database and show a validation message in ASP.NET & Entity Framework
[英]ASP.Net: How I can check whether a row already exists in the database?
我想檢查數據庫中是否已經存在一個值-如果存在,那么我將使用更新查詢,否則將執行插入操作。
我應該怎么做?
只需通過傳遞值來選擇行。 如果返回的rowcount> o表示表中有一個值。 在這種情況下,將其更新,否則將其插入表中。
您可以編寫一個存儲過程,以檢查該唯一字段是否已經存在。 一種方法是僅將SP用於插入,並在那里檢查該值是否已存在。 如果返回yes,則可以調用Update-StoredProcedure。 該方法是故障安全的。
另一種方法是在檢測到該值存在時直接在“ Insert” -SP中進行更新。 我認為這是混淆的代碼。
IF (EXISTS (SELECT *
FROM YourTable
WHERE LoweredUniqueField = LOWER(@Value)))
BEGIN
-- you could use this output parameter as information
SET @InfoCode = 1
GOTO Cleanup
END
-- Else Insert new record:
INSERT INTO .....
Cleanup:
RETURN @InfoCode
END
我認為您的問題不是特定於ASP的,並且我假設您正在連接到MS SQL SERVER。
假設您有一個簡單的表格,如下所示:
CREATE TABLE Products_table ( [ProductID] [int] NULL, [Qty] [int] NULL ) ON [PRIMARY]
如果要在給定產品存在時更新其數量,否則要創建它,則可以使用以下語句:
UPDATE Products_table SET Qty = 1000 WHERE ProductID = 10
INSERT INTO Products_table (ProductID,Qty)
SELECT 10 as ProductID, 1000 as ProductQty
WHERE NOT EXISTS (SELECT 1 FROM Products_table WHERE ProductID = 10 )
僅當ProductID = 10時更新才有效,並且插入將僅在不存在的情況下創建新行。 您應該將兩個語句作為查詢放在單個SqlCommand中,然后執行它。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.