2014-05-03 34 views
1

我正在研究一個微型啤酒廠的庫存系統,我有一個關於將客戶添加到數據庫的問題。我只想添加客戶,只要他們還沒有條目。我可以使用什麼命令來檢查?
這裏是我到目前爲止的代碼(ASP.NET)微軟SQL搜索表條目

con.ConnectionString = "****" 
con.Open() 
cmd.Connection = con 
cmd.CommandText = "INSERT INTO Customer(Name, Address) VALUES('" & Namea & "','" & Addressa & "')" 
cmd.ExecuteNonQuery() 
cmd.CommandText = "SELECT Customer_ID FROM Customer WHERE (Name = '" & Namea & "')" 
custID = cmd.ExecuteScalar 
cmd.CommandText = "SELECT Order_Details_ID FROM OrderDetails WHERE Finished_Inventory_ID=" & OrdersInt & "" 
ordrID = cmd.ExecuteScalar 
cmd.CommandText = "INSERT INTO Orders(Customer_ID, Order_Details) VALUES(" & Integer.Parse(custID) & "," & Integer.Parse(ordrID) & ")" 
cmd.ExecuteNonQuery() 
con.Close() 

是否有一個布爾命令將返回true是否已存在與特定Namea一個條目。我不希望多個條目具有相同的客戶名稱。

+0

您需要挑選一些獨特的客戶。這個名字是不夠的。電子郵件地址可能沒問題。 –

+0

這是我的計劃,但是如何搜索表格以查看該條目是否已經存在。就像我在某天添加[email protected]然後其他人試圖再次添加同一個人一樣。我如何防止這種情況發生? – user3600224

回答

0

有許多方法可以防止重複條目。你可以先檢查:

select count(*) records 
from etc 

然後看看記錄的值。如果它是0,則進行插入。或者你可以使用子查詢。

insert into table 
(field1, field2, etc) 
select value1, value2, etc 
where (select count(*) etc) = 0 

或像這樣:

insert into table 
(field1, field2, etc) 
select value1, value2, etc 
where not exists (select 1 from table etc) 

在所有情況下,等部分是記錄你不想重複搜索。