Выход из кавычек в строке в VB6

Просто используйте

readonly onfocus = "this.removeAttribute ('readonly');"

в дополнение к

autocomplete = "off"

на вход (ы), которые вы не хотите запоминать данные формы (username, password и т. Д.) .), как показано ниже:

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

Проверено на последних версиях основных браузеров, т. е. Google Chrome, Mozilla Firefox, Microsoft Edge и т. д., и работает как брелок. Надеюсь, это поможет ...

18
задан Meta-Knight 9 July 2009 в 13:58
поделиться

6 ответов

Вы можете использовать "" , чтобы вставить цитату в строку, например:

dim sometext as String = "Hello" "Frank" "как дела?"

Что дает вам

Привет, Фрэнк, как дела?

31
ответ дан 30 November 2019 в 06:05
поделиться

Чтобы избежать цитаты, вам просто нужно добавить еще одну цитату, я считаю, что это то, что вам нужно:

Dim sql As String = "Select * from  Usertask Where UserId = """ & Session("UserId") & """ and JobID=" & ddlReqTask.SelectedValue
12
ответ дан 30 November 2019 в 06:05
поделиться

Вы также можете использовать Chr (34) в конкатентации.

Dim sql As String = "Select * from  Usertask Where UserId = " & Chr(34) & Replace(Session("UserId"), Chr(34), Chr(34) & Chr(34)) & Chr(34) & " and JobID=" & CLng(ddlReqTask.SelectedValue)

Любой способ работает (другие примеры и этот). некоторые люди предпочитают этот вариант, поскольку он может быть менее запутанным, однако приведенные выше примеры не совсем понятны и не являются исключительно ракетостроением

4
ответ дан 30 November 2019 в 06:05
поделиться

Это уязвимость, связанная с внедрением SQL-кода, и вам не следует делать это. Делая это таким образом, вы позволяете своим пользователям выполнять любой запрос, который они хотят, предоставляя вам UserId, например

'; DROP TABLE Usertask; --

. Вместо этого используйте параметры. В зависимости от того, как вы выполняете SQL, есть разные способы сделать это; пожалуйста, покажите нам код, который выполняет SQL-запрос.


В ответ на ваш вопрос,

Dim StringWithQuotes As String = "Hello, I've got ""Quotes""!"

Эта строка будет

Здравствуйте, у меня есть «Цитаты»!

5
ответ дан 30 November 2019 в 06:05
поделиться

Я бы порекомендовал вам использовать параметризованный SQL вместо создания специального оператора SQL, подобного этому, поскольку вы можете оставить себя открытым для внедрения SQL. Это означает, что вам не нужно беспокоиться о конкатенации кавычек в строку, а также об улучшении производительности запросов (при условии, что сервер sql), поскольку это позволяет кэшировать и повторно использовать план выполнения.

например

Dim sql As String = "Select * from  Usertask Where UserId = ? AND JobID = ?"

Затем добавьте 2 ADODB.Parameters. объекту Command, чтобы предоставить значения для 2 параметров например,

Set param = New ADODB.Parameter
param.Name = "@UserId"
param.Direction = adParamInput
param.Type = adVarChar
param.Size = (give size of user id field)
param.value = Session("UserId")
yourADOCommand.Parameters.Append param

И то же самое для параметра JobId.

6
ответ дан 30 November 2019 в 06:05
поделиться

Большинство серверов SQL, по моему опыту, нуждаются в одинарных кавычках для строк. Лучший способ сделать это - позволить .net решить за вас, используя параметры SQL. Вот образец (также в VB.Net): http://www.knowdotnet.com/articles/dynamicsqlparameters.html
Это также имеет преимущество защиты от инъекций SQL.

0
ответ дан 30 November 2019 в 06:05
поделиться