Har du visual studio? Lägg in en breakpoint innan try och stega igenom din try catch!
Du kan också skita i try-catch så får du garanterat bättre vetskap om vad som går fel.
5 svar · 455 visningar · startad av Travoni
Hej,
jag har en SP inlagd i min accessdatabas som heter set_post som ser ut så här:
INSERT INTO guestbook ( id, rubrik )
VALUES ([@id], [@rubrik]);
Och en ASP.NET kod som ser ut så här.
...
Private conn As OleDbConnection
Private cmd As OleDbCommand
Private Sub connOpen(ByVal sql As String)
conn = New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\data\my_db.mdb"))
cmd = New OleDb.OleDbCommand(sql, conn)
cmd.CommandType = CommandType.StoredProcedure
End Sub
Public Function wri(ByVal str As String) As String
connOpen("set_post")
Dim objParam As OleDbParameter
'objParam.Direction = ParameterDirection.Input
objParam = New OleDbParameter("@id", OleDbType.Guid)
objParam.Value = "{BD20D264-9A18-49F3-B5B1-DBA645826BA2}"
cmd.Parameters.Add(objParam)
objParam = New OleDbParameter("@rubrik", OleDbType.Char)
objParam.Value = str
cmd.Parameters.Add(objParam)
Try
conn.Open()
cmd.ExecuteNonQuery()
conn.Close
Catch ex As OleDbException
Return "Err: " & ex.Message.ToString
Throw ex
End Try
Return "* Done *"
End Function
...
Men när jag kör funktionen så händer ingenting. får inte ens ett felmeddelande. och inte heller "* Done *" visas.
Jag har testat det mesta. Att köra SP:n direkt i access funkar bra.
Vad är fel?
IUSR har både läs och -skrivrättigheter
Har du visual studio? Lägg in en breakpoint innan try och stega igenom din try catch!
Du kan också skita i try-catch så får du garanterat bättre vetskap om vad som går fel.
Om du skriver
Throw ex
mister du din stacktrace.
Ok, då får jag felet:
System.InvalidCastException: Invalid cast from System.String to System.Guid
På denna rad: cmd.ExecuteNonQuery()
objParam = New OleDbParameter("@id", OleDbType.Guid)
objParam.Value = new Guid("BD20D264-9A18-49F3-B5B1-DBA645826BA2")
mmm, jag googlade lite och hittade det.
Tusen tack!