如果MAC地址已经存在,它会保留它,否则它将继续正常运行



我需要,如果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 )
...

相关内容

最新更新