If not existis

venerdì 09 settembre 2011 - 16.56
Tag Elenco Tags  VB.NET  |  Visual Studio 2008  |  MySQL 5.1

Mau67 Profilo | Expert

Ciao al forum,
dal mio programma genero dei file.txt dove esporto dati dal database, i dati esportati li passo ad altri utenti inviandoli via email per poi caricarli nei rispettivi programmi.
Detto questo per caricare i dati avrei bisogno che il mio programma quando splitta il file.txt se trova lo stesso id modifichi il dato relativo allo stesso id, altrimenti lo aggiunge

questo è la stringa che uso.

Using objCmd As New MySqlCommand("IF EXISTS (SELECT * FROM ArmaCorpo WHERE ID = @ID)" & _
" UPDATE ArmaCorpo SET (ID=@ID, ArmaCorpo,@ArmaCorpo) WHERE ID = @ID" & _
" ELSE" & _
" INSERT INTO ArmaCorpo (ID, ArmaCorpo)" & _
" VALUES (@ID, @ArmaCorpo)", Connection)

e questo è l'errore che genera:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS (SELECT * FROM ArmaCorpo WHERE ID = 'AC1000000000') UPDATE ArmaCorpo' at line 1

mi date una mano a correggere l'errore?
Grazie
Mau67

AntCiar Profilo | Expert

Ciao Maurizio
Devi utilizzare la funzione Replace INto di Mysql. Provvede a creare il record se non esiste, mentre se esiste già, provvede a fare l'udpate. Per farla funzionare correttamente devi sempre passare i campi chiave nell'istruzione. Di seguito un esempio:

REPLACE INTO ArmaCorpo (ID, ArmaCorpo) VALUES (@ID, @ArmaCorpo);


PS. Tempo fa avevo visto che mi hai scritto una mail ma a causa di una infezione ho perso tutti i dati. Se ti serve qulcosa fammi sapere.
Ciao ciao
Cristian Barca

Mau67 Profilo | Expert

grazie Cristian funziona.
Ah mi dispiace per il tuo problema spero sia tutto risolto!
Ciao e a presto
Mau67
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5