n° 219
Novembre 2017
Dicembre 11, 2017, 04:13:55 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: [RISOLTO]Evitare di inserire records duplicati nel database sql e c#  (Letto 4035 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Ryosaeba
Newbie
*

Karma: +0/-2
Scollegato Scollegato

Messaggi: 24


Mostra profilo
« inserita:: Giugno 18, 2015, 10:41:40 »

Ciao a tutti !

Questo listato mi permette di inserire dati che vengono digitati in un texBox in WPF con linguaggio C#  , mi spiego meglio :

Se vengono inseriti record doppi , quindi voci già presenti nel database (sql), vorrei far uscire un messaggio con scritto ESISTE GIA' LA MATRICOLA


Vi faccio un esempio che vale più di mille parole :


1 - Digito numero matricola e tutto va a buon fine

2 - Digito nuovamente numero matricola e STAVOLTA non memorizza i dati nel database ma esce il messaggio con      scritto ESISTE GIA' LA MATRICOLA

In altre parole non permettere l'inserimento di DUE VOCI uguali ( doppioni )

Il codice è il seguente:
Codice:

 private void btn_save_Click(object sender, RoutedEventArgs e)
        
{

                SqlConnection loginConn = new SqlConnection(db);
                try
                {
                    loginConn.Open();
                    string Query = "insert into Parco (Matricola,StatoMacchina,Cliente,Localita,Nazione,Piede,Trespolo,TappoRetroFrigo,GruppoFrigo,LettoriCodiciPiatti,SchedaKernel,HubUsb,Monitor,ModelloPC,MacAddressPC,VerSoftMacchina,ConnessioneRemota,Router,VerSoftBiosRouter,Ventole,SistemaPagamento,DataAssemblaggio) values ('" + this.matric_txt.Text + "' , '" + StatoMacchina + "' , '" + this.cliente_txt.Text + "','" + this.localita_txt.Text + "','" + this.nazione_txt.Text + "', '" + Piede + "', '" + Trespolo + "', '" + TappoRetroFrigo + "', '" + this.grupfrig_txt.Text + "', '" + lettore + "', '" + this.schker_txt.Text + "','" + hub + "','" + this.moni_txt.Text + "','" + modelloPC + "','" + this.mac_txt.Text + "','" + this.soft_txt.Text + "','" + connRemota + "','" + router + "', '" + this.softrt_txt.Text + "','" + ventole + "','" + sistemaPagamento + "','" + this.data.Text + "')";
                    SqlCommand createCommand = new SqlCommand(Query, loginConn);
                    createCommand.ExecuteNonQuery();
                    MessageBox.Show("Salvato ");
                    loginConn.Close();

                }
                catch (Exception ex)
                {
                  
                    MessageBox.Show(ex.Message);
                    
                }
                
                string aggcombo = matric_txt.Text;

                comboBox1.Items.Add(aggcombo);

            }
            else
            {
              
              
            }

        }



Come devo fare la query? per far il controllo dei doppioni...
Grazie in anticipo



Registrato
phoenix_g
Jr. Member
**

Karma: +7/-1
Scollegato Scollegato

Messaggi: 110



Mostra profilo
« Risposta #1 inserita:: Giugno 18, 2015, 11:20:04 »

Ciao.
Beh, puoi potenzialmente fare in due modi:
1. Se rendi il campo "matricola" è una chiave primaria della tabella, non hai bisogno di fare nulla, in quando il secondo insert andrà in errore e verrà catchato dal tuo attuale codice c#.
2. Se invece così non fosse, devi modificare la query, questa è la versione più semplice e immediata (ometto il passaggio di parametri in modo "corretto"):

Codice:
if not exists (select Matricola from Parco where matricola = matricola_inserita_da_utente)
  -- il tuo insert
else
   raiserror('Matricola esistente', 16, 2)
Registrato
Ryosaeba
Newbie
*

Karma: +0/-2
Scollegato Scollegato

Messaggi: 24


Mostra profilo
« Risposta #2 inserita:: Luglio 15, 2015, 03:45:09 »

Grazie....risolto.
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines