Vad är fel?
Jag har skrivrättigheter i katalogen osv.
Public Sub upd_db(sender As Object, e As System.EventArgs)
Dim str as string = msg.text
Dim conn As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\testar\db2.mdb"))
Dim cmd As New OleDb.OleDbCommand("set_posts", conn)
cmd.commandtype = commandtype.storedProcedure
Dim objParam as OleDbParameter
objParam = cmd.Parameters.Add("@rubrik", OleDbType.Char)
objParam.direction = ParameterDirection.Input
objParam.Value = str
Try
conn.Open()
cmd.ExecuteNonQuery()
msg.text = "OK!"
Catch ex As OleDbException
msg.text = ex.tostring()
Finally
conn.Close()
End Try
conn.Close()
End Sub
Ok, det var ju inte så svårt, jag högerklickade på mappen och ändrade lite rättigheter på det kontot.
BTW. finns det inget smidigare sätt att göra en insert?
I classic asp så skulle man kunna göra typ så här: (kvasi-kod)
Dim conn As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\testar\db2.mdb"))
Dim cmd As New OleDb.OleDbCommand("[b]set_posts '" & parameter & "'[/b]", conn)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Ok, det var ju inte så svårt, jag högerklickade på mappen och ändrade lite rättigheter på det kontot.
BTW. finns det inget smidigare sätt att göra en insert?
I classic asp så skulle man kunna göra typ så här: (kvasi-kod)
Dim conn As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("\testar\db2.mdb"))
Dim cmd As New OleDb.OleDbCommand("[b]set_posts '" & parameter & "'[/b]", conn)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Går inte det i .net?
Jovisst. Men det är inte bra att skicka in SP-parametrar via kommando-texten....
Tänkte komma till det, men det kom lite emellan....
Det finns två huvudanledningar
1. Man ökar risken för SQL injection, eftersom det blir en potentiellt farlig sträng som man exekverar
2. SP:ar är optimerade för att anropas med satta parametrar, och man tappar prestanda om man exekverar dem som text, eftersom SQL server då (oftast) inte kan hitta en kompilerad version av frågan i cachen. Lite förenklat uttryckt.