我需要,如果MAC地址已经存储在数据库中,它不会保存并继续运行程序,但如果它没有那个MAC地址,它只保存我不知道如何将它放在"如果":
if (macAddr != macAddr)
{
SqlDataAdapter ee = new SqlDataAdapter("[dbo].[dbo.Bi_DispositivoInset]", ss);
ee.SelectCommand.CommandType = CommandType.StoredProcedure;
ee.SelectCommand.Parameters.Add("@disp_mac", SqlDbType.NVarChar, (17)).Value = macAddr;
ee.SelectCommand.Parameters.Add("@disp_nom", SqlDbType.VarChar,(50)).Value = nomeCompleto;
ee.SelectCommand.Parameters.Add("@ID_interno_cc", SqlDbType.Int).Value = "1";
ee.SelectCommand.ExecuteNonQuery();
ss.Close();
foreach (var s in SerialPort.GetPortNames())
{
我知道不是那样的,但我是新来的。。。
正确的方法是只进行一次往返。
你只想只在一行不存在的情况下插入它,然后继续,所以让你的过程实现它,只需在它执行not exist
的地方插入你的数据
create or alter procedure Bi_DispositivoInset
@disp_mac NVarChar (17)
@disp_nom VarChar (50)
@ID_interno_cc Int
as
...
insert into [table] (disp_mac, disp_nom, ID_interno_cc)
select @disp_mac, @disp_nom, @ID_interno_cc
where not exists (select * from [table] where disp_mac=@disp_mac )
...