Query parametriche in ASP.NET e C#

venerdì 21 novembre 2008 - 09.53

Leonida Profilo | Junior Member


Ciao...visto che il precedente thread non ha avuto buon esito, riporto il problema su questo. Sto sviluppando un'applicazione in ASP.NET usando Visual studio 2005. Ho scritto il codice in C# per memorizzare le informazioni di un form in un database usando le query parametriche. Riporto una parte del codice:-

string sqlInsert = "INSERT INTO [Anagrafica] VALUE (@Nome, @Cognome, @DataDiNascita, @ComuneDiNascita, @Sesso, @CF);";

SqlConnection conn = new SqlConnection(connString);
SqlCommand com = new SqlCommand(sqlInsert, conn);

conn.Open();

// dichiara i parametri

SqlParameter pNome = new SqlParameter("@Nome", SqlDbType.NVarChar, 50);
SqlParameter pCognome = new SqlParameter("@Cognome", SqlDbType.NVarChar, 50);
SqlParameter pDataDiNascita = new SqlParameter("@DataDiNascita", SqlDbType.NVarChar, 50);
SqlParameter pComuneDiNascita = new SqlParameter("@ComuneDiNascita", SqlDbType.NVarChar, 50);
SqlParameter pSesso = new SqlParameter("@Sesso", SqlDbType.NChar, 50);
SqlParameter pCF = new SqlParameter("@CF", SqlDbType.Char, 16);

// setta i parametri

pNome.Value = TBNome.Text;
pCognome.Value = TBCognome.Text;
pDataDiNascita.Value = DDLGiorno.SelectedItem.Value.ToString() + " " +
DDLMese.SelectedItem.Value.ToString() + " " +
DDLAnno.SelectedItem.Value.ToString();
pComuneDiNascita.Value = DDLComune.SelectedItem.Value.ToString();

if (RBM.Checked == true)
pSesso.Value = "maschio";
else
pSesso.Value = "femmina";

pCF.Value = TBCF.Text;

// aggiunge i parametri alla lista di parametri definiti per la query

com.Parameters.Add(pNome);
com.Parameters.Add(pCognome);
com.Parameters.Add(pDataDiNascita);
com.Parameters.Add(pComuneDiNascita);
com.Parameters.Add(pSesso);
com.Parameters.Add(pCF);

// esegue la query parametrica

com.ExecuteNonQuery();

conn.Close();
...

Compila e il form funziona perfettamente ma quando clicco sul tasto di conferma mi da sempre lo stesso errore:

Sintassi non corretta in prossimità di 'VALUE'.
...
Riga 234: com.ExecuteNonQuery();
...
[SqlException (0x80131904): Sintassi non corretta in prossimità di 'VALUE'.]
...

Non ci capisco niente, per logica dovrebbe funzionare, invece...potete aiutarmi?!Grazie in anticipo

rossimarko Profilo | Guru

Ciao,

è sbagliata la sintassi della query. Non devi usare la parola chiave "VALUE" ma "VALUES"

Ti suggerisco inoltre di inserire i nomi delle colonne:

"INSERT INTO [Anagrafica] (Nome, Cognome, DataDiNascita, Sesso, CF) VALUES (@Nome, @Cognome, @DataDiNascita, @ComuneDiNascita, @Sesso, @CF)"
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

alx_81 Profilo | Guru

>Ciao...
Ciao!

>[SqlException (0x80131904): Sintassi non corretta in prossimità
>di 'VALUE'.]
>...
>
>Non ci capisco niente, per logica dovrebbe funzionare, invece...potete
>aiutarmi?!
Ehehe.. me ne sono accorto adesso.. è VALUES!!

Grazie in anticipo
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

Leonida Profilo | Junior Member

Atz!!!E lo sapevo che era una bufala di errore, e io che quasi stavo andando a sbirciare i file di configurazione di sistema per valutare il clr dei blocchi del file system ala ricerca manuale di un errore fantomatico!!!Grazie, pensa che sto combattendo con il problema da ieri pomeriggio!!!

Leonida Profilo | Junior Member

Grazie comunque per la dritta sulle query parametriche
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5