Aiuto Query String...

venerdì 01 luglio 2011 - 13.15
Tag Elenco Tags  C#  |  .NET 3.5  |  Access (.mdb)

nicola1984 Profilo | Newbie

Salve ragazzi ho un piccolo problemino !
In pratica ho bisogno di inviare ad un altra pagina Id di un record appena inserito in un database access

Adesso posto il codice della pagina...

protected void Button1_Click(object sender, EventArgs e)
{

string conString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=D:/Sito/Sito/App_Data/ASPNetDB.mdb";

OleDbConnection empConnection = new OleDbConnection(conString);


string insertStatement = "INSERT INTO Auto "
+ "(Marca, Modello, Carburante, Kilometri, Colore, Descrizione, HomePage, Attivo) "
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?)";

OleDbCommand insertCommand = new OleDbCommand(insertStatement, empConnection);

insertCommand.Parameters.Add("Marca", OleDbType.Char).Value = DropDownList1.SelectedValue;
insertCommand.Parameters.Add("Modello", OleDbType.Char).Value = DropDownList2.SelectedValue;
insertCommand.Parameters.Add("Carburante", OleDbType.Char).Value = DropDownList3.SelectedValue;
insertCommand.Parameters.Add("Kilometri", OleDbType.Char).Value = TextBox1.Text;
insertCommand.Parameters.Add("Colore", OleDbType.Char).Value = DropDownList5.SelectedValue;
insertCommand.Parameters.Add("Descrizione", OleDbType.Char).Value = TextBox2.Text;
insertCommand.Parameters.Add("HomePage", OleDbType.Boolean).Value = CheckBox1.Checked;
insertCommand.Parameters.Add("Attivo", OleDbType.Boolean).Value = CheckBox1.Checked;


empConnection.Open();

try
{
int count = insertCommand.ExecuteNonQuery();

}
catch (OleDbException ex)
{
lblError.Visible = true;
lblError.Text = (ex.Message);
}
finally
{

empConnection.Close();
/// Response.Redirect(string.Format("AllAuto.aspx?IdAuto={0}")); (da qui devo passare il L'idauto appena inserito)
}
}
Il problema sta nel finally quando devo effettuare il redirect su di un altra pagina, che poi mi permette di inserire le foto dell'id del record correlato della tabella..
Qualcuno può aiutarmi...???
Grazie mille...

Gluck74 Profilo | Guru

ora non è che sono ferratissimo in access, ma tu sei sicuro che
int count = insertCommand.ExecuteNonQuery();
ti restituisca l'id del record inserito e non il numero di record inseriti?

Detto questo, comuqnue la variabile la devi dichiarare fuori dal try

int count = 0;
try {
...
...
}
finally
{
}
if (count > 0)
response.redirect(...);
else
//gestione errore


____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

nicola1984 Profilo | Newbie

MMMM forse mi son spiegato male
In pratica dopo aver inserito il record, avrei bisogno di passare un l'idAuto del record appena inserito... Suggerimenti per recuperare ciò e passarlo nella query sting...

softgens Profilo | Newbie

Diciamo che il tuo problema non è la querystring ma come recuperare l'ultimo id inserito.

Il codice da chiamare dopo l'inserimento è:
Cmd.CommandText = "SELECT @@IDENTITY"
retVal = Cmd.ExecuteScalar()

Da notare che devi creare un altro comando visto che con Ole non è possibile effettuare query multiple (al contrario di SQL)






Gluck74 Profilo | Guru

@softgens
il comendo è identico a SQL Server? sicuro?

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

nicola1984 Profilo | Newbie

Ragazzi comunque non ne esco, non ci riesco.....

Gluck74 Profilo | Guru

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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