Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Errore su VALUE in fase di caricamento dati da Form ASP.NET a DB
giovedì 20 novembre 2008 - 11.44
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Leonida
Profilo
| Junior Member
85
messaggi | Data Invio:
gio 20 nov 2008 - 11:44
Ciao a tutti,
Voglio memorizzare delle informazioni da un form ASP.NET a un DB scritto con SQLExpress tramite Visual Studio 2005. Per farlo ho scritto una classe che contiene il metodo InsertOnDB di cui riporto il codice:
public void InsertOnDB(string tab, string val)
{
string insert = "INSERT INTO" + tab + " VALUE ("+ val +");";
SqlConnection connect = new SqlConnection(connString);
SqlCommand com = new SqlCommand(insert, connect);
com.Connection.Open();
com.ExecuteNonQuery();
com.Connection.Close();
}
La classe memorizza in un campo inizializzato da un costruttore, la stringa di connessione. Quando da form Clicco il pulsante di conferma, mi da un errore di sintassi su VALUE e un riferimento alla riga con la chiamata del metodo: com.ExecuteNonQuery().
Come posso risolvere?Non uso asp da molto...
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 20 nov 2008 - 11:58
>Ciao a tutti,
Ciao!
> public void InsertOnDB(string tab, string val)
> {
>string insert = "INSERT INTO" + tab + " VALUE ("+ val +");";
>Come posso risolvere?Non uso asp da molto...
A parte che sembra manchi uno spazio tra INTO e la variabile tab e a parte che non so di che tipo sia il value che vai ad inserire (se è stringa, servono le apici), perchè usi la concatenazione di stringhe?
Ti consiglio di lasciar perdere questo tipo di approccio, usando invece le query parametriche:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=15921
Questo perchè rischi di incappare nei pericoli da SQL Injection. Leggi questo articolo:
http://www.dotnethell.it/articles/SQL-Injection-Tutorial-Security.aspx
Ciao!
--
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
85
messaggi | Data Invio:
gio 20 nov 2008 - 12:41
Grazie per il consiglio...sto dando uno sguardo alle query parametriche ma non capisco la logica di funzionamento, o meglio ho dei dubbi.
Se ho capito bene, usando SqlDataSource in corrispondenza, per esempio, di una TextBox con id "nome" in ASP.NET, tramite l'attributo "InsertCommand" e passando come valore da caricare nel database @nome, la stringa scritta nella TextBox viene memorizzata nella tabella del database.
La memorizzazione della stringa quando avviene? Io in pratica vorrei venissero copiati tutti i campi del form solo dopo la pressione di un pulsante di conferma. In tal caso sarebbe allora più opportuno scrivere il codice direttamente in C# in corrispondenza di un evento click del pulsante?
Non voglio scocciarti ulteriormente ma potresti scrivermi un esempio semplice di codice?Scusa ma è da pochissimo che studio l'ASP.NET e il C#, in pratica sono ancora in fase di scoperta e sperimentazione
Leonida
Profilo
| Junior Member
85
messaggi | Data Invio:
gio 20 nov 2008 - 16:50
Problema risolto su un altro thread, scrivevo VALUE al posto di VALUES nella query...
Torna su
Stanze Forum
Elenco Threads
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 !