Forum Pplware
Verificar se existem dados da BD - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Verificar se existem dados da BD (/showthread.php?tid=9137)



Verificar se existem dados da BD - joaocarlos07 - 07-06-2011 12:10

Boa tarde ,

Eu estou a fazer um insert de dados na minha BD e gostava de saber como verifico se os dados ja existem que é para não adicionar dados duplicados na BD

Eu pensei assim mas nao sei como verificar dentro do if se os dados ja existem na bd :

Código:
if ( )
{
      messagebox.show("Campo ja adicionado ");
}
else
{
//Insert
            SqlCeCommand cmd = new SqlCeCommand(" INSERT into vendas (id,nome,preco) VALUES ('" + resultado.ToString() + "','" + listBox1.SelectedItem + "','" + label2.Text + "' )", liga);
            cmd.ExecuteNonQuery();
}


Desde ja o meu obrigado pela ajuda


RE: Verificar se existem dados da BD - marfonte - 07-06-2011 15:18

Que tal fazeres um select primeiro a bd e dentro do if verificas se tem ou nao registos??

Cumps,


RE: Verificar se existem dados da BD - JPedrosa - 07-06-2011 19:13

deverias criar na DB a coinstraint para não permitir registos duplicados.

Como se faz?
Crias um indíce com os campos todos que precisas garantir a unicidade e dizes que esse indice é único.


RE: Verificar se existem dados da BD - marfonte - 07-06-2011 22:32

(07-06-2011 19:13)JPedrosa Escreveu:  deverias criar na DB a coinstraint para não permitir registos duplicados.

Como se faz?
Crias um indíce com os campos todos que precisas garantir a unicidade e dizes que esse indice é único.

Exactamente deves sempre garantir de ambos os lados (BD e Aplicação) a integridade dos dados.

Cumps,


RE: Verificar se existem dados da BD - joaocarlos07 - 08-06-2011 09:40

Obrigado a todos pelas respostas Smile esta resolvido


RE: Verificar se existem dados da BD - JPedrosa - 08-06-2011 11:40

(07-06-2011 22:32)marfonte Escreveu:  
(07-06-2011 19:13)JPedrosa Escreveu:  deverias criar na DB a coinstraint para não permitir registos duplicados.

Como se faz?
Crias um indíce com os campos todos que precisas garantir a unicidade e dizes que esse indice é único.

Exactamente deves sempre garantir de ambos os lados (BD e Aplicação) a integridade dos dados.

Cumps,

Viva,
do lado aplicação o mais simples, é em cada objecto que tens, implementares o método "exists" que tipicamente recebe um ID e devolve um bool
E depois, antes de mandares criar algo na DB, chamas o "exists", e tens o código de inserção dentro de um if onde a condição para a execução é o "exists" ser true.

Assim, desta forma, só tentas fazer o insert se for efectivamente necessário.

Ainda assim, deves tratar a SQL Exception de retorno, porque pode algo correr mal, para além de duplicados ..