50 messaggi dal 08 dicembre 2010
Ah mi sono scordato di scrivere la stringa di connessione che ha me pare giusta
Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Sito\Sito.mdb")
cn = New OleDbConnection(str)
fefe274 wrote:
Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0 ata Source=" & Server.MapPath("Sito\Sito.mdb")
cn = New OleDbConnection(str)

se il tuo db è sotto la root del sito, non serve metterci la prima parte. inoltre, sempre meglio usare un percorso assoluto, tipo "/dir/sito.mdb". .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
50 messaggi dal 08 dicembre 2010
Ho risolto il problema che era solo perchè non ho messo il \ prima della cartella, però mo me da un altro proble ancora :(
sull'oledbtransaction:
Errore server nell'applicazione '/'.
--------------------------------------------------------------------------------

La OleDbTransaction è completata e non può più essere utilizzata.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: System.InvalidOperationException: La OleDbTransaction è completata e non può più essere utilizzata.

Errore nel codice sorgente:


Riga 24: Else
Riga 25: Response.Write("Update riuscito di" & result & "records")
Riga 26: objTransaction.Commit()
Riga 27: End if
Riga 28: End Sub


File di origine: C:\inetpub\wwwroot\Sito\Form.aspx Riga: 26

Analisi dello stack:


[InvalidOperationException: La OleDbTransaction è completata e non può più essere utilizzata.]
System.Data.OleDb.OleDbTransaction.Commit() +147
ASP.sito_form_aspx.Invia(Object sender, EventArgs e) in C:\inetpub\wwwroot\Sito\Form.aspx:26
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565




--------------------------------------------------------------------------------
Informazioni di versione: Versione di Microsoft .NET Framework:2.0.50727.4952; Versione di ASP.NET:2.0.50727
fefe274 wrote:
sull'oledbtransaction:
Errore server nell'applicazione '/'.

impara a postare solo l'eccezione ed un pezzo di codice, non serve tutto l'errore completo. il problema è che la transazione non c'è più, è già stata confermata. controlla di non farlo da qualche altra parte (o in maniera implicita).
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
50 messaggi dal 08 dicembre 2010
Vi posto il codice a me non pare di averlo messo implicitamente
<%@ Page Language="VB" Debug="true"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
Private Sub Invia(sender As Object, e As EventArgs)
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim strSQL As String
Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\Sito\Sito.mdb")
cn = New OleDbConnection(str)
cn.Open()
Dim objTransaction as OleDbTransaction = cn.BeginTransaction
strSQL = "INSERT INTO Utenti (Nome, Cognome, Username, Pass) VALUES (?, ?, ?, ?)"
cmd = New OleDbCommand(strSQL, cn, objTransaction)
cmd.Parameters.Add("@nome", txtnome.text)
cmd.Parameters.Add("@cognome", txtcognome.text)
cmd.Parameters.Add("@username", txtusername.text)
cmd.Parameters.Add("@pass", txtpass.text)
Dim result as integer = cmd.ExecuteNonQuery()
cn.Close()
If result = 0 Then
Response.Write("Update fallito!")
objTransaction.Rollback()
Else
Response.Write("Update riuscito di" & result & "records")
objTransaction.Commit()
End if
End Sub
</script>
fefe274 wrote:
Vi posto il codice a me non pare di averlo messo implicitamente

se chiudi la connessione, come potrai mai lavorare con la transazione? sposta cn.Close() dopo il blocco if. se hai altri problemi, non commentare questo articolo, ma apri un thread ad hoc sul forum. grazie. .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
50 messaggi dal 08 dicembre 2010
Se volessi mettere un alert javascript invece di mettere il response.wrtite per l'inserimento che andato a buon fine o meno, come potrei fare?

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.