Предотвращение внедрения SQL в ASP.Net

У меня есть этот код

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 инъекция

9
задан John Saunders 20 June 2015 в 04:30
поделиться