33 messaggi dal 06 settembre 2002
Sto tentando di inserire dei dati in un db Access, tramite form, ovvero, popolo il form e, associando al click del pulsante il dovuto metodo, vorrei inseriri i dati. Mi riesce bene inserire dei dati statici, ovvero, non provenienti dal form, ma passati direttamente tramite la clausola INSERT, in questo modo:
protected void Button1_Click(object sender, EventArgs e) 
    {
        
        string Scn = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + Server.MapPath("clienti.mdb");
        OleDbConnection cnn = new OleDbConnection(Scn);
        cnn.Open();
        OleDbCommand cmd = new OleDbCommand("INSERT INTO Categories (Generi) VALUES (dato1)", cnn);
        OleDbDataReader esegui = cmd.ExecuteNonQuery();
    }



Ora, vorrei fare in modo che, al posto del valore statico dato1, inserire un valore proveniente da una textbox, chiamata txtNome, qualcuno mi da una mano?
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
DanyWeb ha scritto:
Ora, vorrei fare in modo che, al posto del valore statico dato1, inserire un valore proveniente da una textbox, chiamata txtNome, qualcuno mi da una mano?

Il modo più semplice:
protected void Button1_Click(object sender, EventArgs e)
{
string Scn = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + Server.MapPath("clienti.mdb");
OleDbConnection cnn = new OleDbConnection(Scn);
cnn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO Categories
(Generi) VALUES ('" + txtNome.Text.Replace("'","''") + "')", cnn); OleDbDataReader esegui = cmd.ExecuteNonQuery();
}

Ciao
.
33 messaggi dal 06 settembre 2002
0ra provo! :)
Io comunque avevo fatto qualcosa di simile, vedo cosa ho sbagliato!
33 messaggi dal 06 settembre 2002
Perfetto, funziona, sbagliavo con la sequenza di chiusura degli apici io!Un'altra domanda, se invece volessi mettere in una variabile, il contenuto della textbox e poi, nella query d'inserimento, al posto di scrivere txtNome.Text mettessi il nome della variabile che contiene i dati come posso fare?
In ASP facevo

Dim txtNome = Request.Form(txtNome)

INSERT INTO Tabella(Colonna1) VALUES (txtNome)


in ASP.NET?
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
DanyWeb ha scritto:
Perfetto, funziona, sbagliavo con la sequenza di chiusura degli apici io!



> Un'altra domanda, se invece volessi mettere in una variabile, il
contenuto della textbox e poi, nella query d'inserimento, al posto di scrivere txtNome.Text mettessi il nome della variabile che contiene i dati come posso fare?
In ASP facevo

Dim txtNome = Request.Form(txtNome)

INSERT INTO Tabella(Colonna1) VALUES (txtNome)

in ASP.NET?

Vale quanto detto sopra:

Dim txtNome = Request.Form(txtNome)
string Scn = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + Server.MapPath("clienti.mdb");
OleDbConnection cnn = new OleDbConnection(Scn);
cnn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO Categories
(Generi) VALUES ('" + txtNome.Replace("'","''") + "')", cnn); OleDbDataReader esegui = cmd.ExecuteNonQuery();

Nota il replace dell'apice. Ancora meglio, questo codice sarebbe meglio scriverlo passando i parameter al commando piuttosto di scrivere manualmente i parametri all'interno della stringa. Alcune info le trovi qui: http://msdn2.microsoft.com/it-it/library/system.data.oledb.oledbparameter(VS.80).aspx
Ciao
.
33 messaggi dal 06 settembre 2002
Innanzitutto grazie per le risposte Andrea!
Ho dato un'occhiata al link MSDN che mi hai gentilmente suggerito, ma, essendo niubbo della programmazione ASP.NET con C#, ho le idee un tantino confuse!Ti chiedo troppo se mi faresti vedere sul campo, basandoti sul mio codice, l'utilizzo di questi parametri?
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
DanyWeb <DanyWeb> ha scritto:
Innanzitutto grazie per le risposte Andrea!

Di nulla

Ho dato un'occhiata al link MSDN che mi hai gentilmente suggerito, ma, essendo niubbo della programmazione ASP.NET con C#, ho le idee un tantino confuse!Ti chiedo troppo se mi faresti vedere sul campo, basandoti sul mio codice, l'utilizzo di questi parametri?

Dovrebbe essere (scritto al volo):
Dim txtNome = Request.Form(txtNome)
string Scn = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + Server.MapPath("clienti.mdb");
OleDbConnection cnn = new OleDbConnection(Scn);
cnn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO Categories
(Generi) VALUES (?)", cnn);
OleDbParamater par1=new OleDbParameter("txtnome",OleDbType.VarWChar, 50); par1.Value=txtNome;
cmd.Parameters.Add(par1);
OleDbDataReader esegui = cmd.ExecuteNonQuery();

Ciao
33 messaggi dal 06 settembre 2002
Ok, grazie di nuovo!
Ma perchè utilizzare i parametri e non i comandi direttamente nella query?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.