я пытаюсь получить поле Max, где дата = сегодня, используя этот код:Неверный синтаксис рядом с '#'. VB.net с базой данных SQL
Dim todaydate = Format(Today.Date, "dd/MM/yyyy")
Dim sql1 As String = "Select max(snum) From tblbill where idate = #" & todaydate & "# "
Dim conn1 As SqlConnection = New SqlConnection(constr)
Dim cmd1 As SqlCommand = New SqlCommand(sql1, conn1)
conn1.Open()
Dim dr1 As SqlDataReader = cmd1.ExecuteReader
dr1.Read()
If IsDBNull(dr1(0)) Then
TextBox6.Text = 1
Else
TextBox6.Text = dr1(0) + 1
End If
dr1.Close()
cmd1.Dispose()
conn1.Close()
но при запуске приложения я получил эту ошибку: Неправильный синтаксис около «#» , Может кто поможет!
'#' дата разделителем для * доступа * SQL, используйте одинарные кавычки для T-SQL (и, возможно, агностический формат даты локали, такой как yyyymmdd). –
@AlexK. - это плохой совет, потому что он все еще оставляет это открытым для SQL-инъекций. Правильный совет - использовать параметризованный запрос, который вообще не требует формата даты, специфичного для локали. –
Опишите атаку, которая вызывает 'Format (Today.Date," dd/MM/yyyy ")', чтобы вернуть инъекционную строку? –