У меня есть этот код
UPDATE OPENQUERY (db,'SELECT * FROM table WHERE ref = ''"+ Ref +"'' AND bookno = ''"+ Session("number") +"'' ')
Как мне предотвратить SQL-инъекции?
ОБНОВЛЕНИЕ
Вот то, что я пытаюсь
SqlCommand cmd = new SqlCommand("Select * from Table where ref=@ref", con);
cmd.Parameters.AddWithValue("@ref", 34);
По какой-то причине все, что я пробую и добавить, что это не работает. Я все время получаю SQL-команду
, упомянутую ниже.
Ошибка заключается в том, что
'SqlCommand' is a type and cannot be used as an expression
Я беру кого-то другого » t заменить @investor
на 69836
Есть идеи?
РЕШЕНИЕ
Вот как я решил свою проблему
Dim conn As SqlConnection = New SqlConnection("server='h'; user id='w'; password='w'; database='w'; pooling='false'")
conn.Open()
Dim query As New SqlCommand("DECLARE @investor varchar(10), @sql varchar(1000) Select @investor = 69836 select @sql = 'SELECT * FROM OPENQUERY(db,''SELECT * FROM table WHERE investor = ''''' + @investor + ''''''')' EXEC(@sql)", conn)
dgBookings.DataSource = query.ExecuteReader
dgBookings.DataBind()
Теперь я могу писать запросы, не беспокоясь о SQL инъекция