Har följande kod och vill byta ut strängen direkt i sql frågan mot en parameter istället för att göra det säkrare
denna koden har jag just nu
Dim conn As MySqlConnection
Dim adapter As MySqlDataAdapter
Dim dataset As New DataSet
If ViewState("MySQLDataSet") Is Nothing Then
' Read the connection string from Web.config
Dim strsearch As String = Search_title.Text
conn = New MySqlConnection("server=localhost; database=jmdb; pooling=false;")
Dim strSQL As String = "SELECT * FROM movies where title like '" & searchstring & "'"
' Create adapter
adapter = New MySqlDataAdapter(strSQL, conn)
' Fill the DataSet
adapter.Fill(dataset, "movies")
och vill altså skriva @searchtext i sql:en istället och lägga till något i stil med detta
Dim strSQL As String = "SELECT * FROM movies where title like @searchstring"
adapter = New MySqlDataAdapter(strSQL, conn)
adapter.SelectCommand.Paramaters.Add("@searchstring", System.Data.SqlDbType.NVarChar, 150).Value=strsearch
EDIT: hmm verkar inte fungera alls, får varken felmeddelande eller några poster. sen så vill jag ha det så det fungerar som motsvarande
like '%" & strSearch & "%'
dvs med % som gör att delar av ord matchas. hur löser jag det?
såhär ser det ut nu
' Define data objects
Dim conn As MySqlConnection
Dim adapter As MySqlDataAdapter
Dim dataset As New DataSet
If ViewState("MySQLDataSet") Is Nothing Then
' Read the connection string from Web.config
Dim strsearch As String = Search_title.Text
conn = New MySqlConnection("server=localhost; database=jmdb; pooling=false;")
Dim strSQL As String = "SELECT * FROM movies where title like @searchstring"
adapter = New MySqlDataAdapter(strSQL, conn)
adapter.SelectCommand.Parameters.Add("@searchstring", System.Data.SqlDbType.NVarChar, 150).Value = strsearch
' Fill the DataSet
adapter.Fill(dataset, "movies")
' Store the DataSet in view state
ViewState("MySQLDataSet") = dataset
Else
dataset = ViewState("MySQLDataSet")
End If
Fungerar fortfarande inte, får inte tillbaka några poster alls oavsett vad jag skriver in
Äsch, det är ju jag som är blind och inte ser att det är en MySQL-databas...
Det ska vara "?", inte "@" i parameternamnen. Konkateneringsvarianten med '%' + .... kommer inte att funka, så fu får ta den andra (eller konkatenera à la MySQL). Dessutom ska det vara en MySqlDbType, inte en SqlDbType. Säkert något annat också, men börja så.
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e