用于输入的Microsoft SQL搜索表

时间:2014-05-03 23:10:44

标签: asp.net sql sql-server database

我正在为微型酿酒厂的库存系统工作,我有一个关于将客户添加到数据库的问题。我想只在客户没有输入时添加客户。我可以使用什么命令来检查? 到目前为止我的代码(ASP.NET)

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的布尔命令。我不希望多个条目具有相同的客户名称。

1 个答案:

答案 0 :(得分: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)

在所有情况下,等部分都是搜索您不想复制的记录。