SQL select 语句的注入方法
SQL injection method for select statement
我想从我的数据库中获取相同的值,因此我正在使用此查询:
SELECT NormalComputers
FROM usb_compliance
WHERE ATC = 'CMB'
ORDER BY date DESC
OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
使用这个我想得到很多值所以我打算使用 SQL 注入方法请帮助我如何创建这个
如果我可以使用注入方法我可以使用函数应该是这样的
Private Function query(ByVal values As String, ByVal atc As String, ByVal no As Integer)
Dim connetionString As String
Dim connection As SqlConnection
Dim command As SqlCommand
Dim sql As String
connetionString = "Server=CTV-WEBDEVEXG;Database=usb;Trusted_Connection=True;"
sql = "SELECT @values FROM usb_compliance WHERE ATC=@atc ORDER BY date DESC OFFSET @no ROWS FETCH NEXT 1 ROWS ONLY"
connection = New SqlConnection(connetionString)
Try
command = New SqlCommand(sql, connection)
With command
.Connection.Open()
MsgBox("done !!!")
.CommandType = CommandType.Text
.Parameters.Add("@values", SqlDbType.DateTime).Value = values
.Parameters.Add("@atc", SqlDbType.NVarChar).Value = atc
.Parameters.Add("@NormalComputers", SqlDbType.Int).Value = no
End With
command.ExecuteNonQuery()
command.Dispose()
connection.Close()
Catch ex As Exception
End Try
Return sql
End Function
我试过这种方法,但它不起作用,所以请帮助我
参数@values
指的是要检索的字段名称。所以它应该是一个字符串而不是 DateTime
(尽管这个提交的数据类型可能是 DateTime
)。
...
.Parameters.Add("@values", SqlDbType.NVarChar).Value = values
...
获取受影响的行:
Dim numRows as Integer
...
..
numRows=command.ExecuteNonQuery()
我想从我的数据库中获取相同的值,因此我正在使用此查询:
SELECT NormalComputers
FROM usb_compliance
WHERE ATC = 'CMB'
ORDER BY date DESC
OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
使用这个我想得到很多值所以我打算使用 SQL 注入方法请帮助我如何创建这个
如果我可以使用注入方法我可以使用函数应该是这样的
Private Function query(ByVal values As String, ByVal atc As String, ByVal no As Integer)
Dim connetionString As String
Dim connection As SqlConnection
Dim command As SqlCommand
Dim sql As String
connetionString = "Server=CTV-WEBDEVEXG;Database=usb;Trusted_Connection=True;"
sql = "SELECT @values FROM usb_compliance WHERE ATC=@atc ORDER BY date DESC OFFSET @no ROWS FETCH NEXT 1 ROWS ONLY"
connection = New SqlConnection(connetionString)
Try
command = New SqlCommand(sql, connection)
With command
.Connection.Open()
MsgBox("done !!!")
.CommandType = CommandType.Text
.Parameters.Add("@values", SqlDbType.DateTime).Value = values
.Parameters.Add("@atc", SqlDbType.NVarChar).Value = atc
.Parameters.Add("@NormalComputers", SqlDbType.Int).Value = no
End With
command.ExecuteNonQuery()
command.Dispose()
connection.Close()
Catch ex As Exception
End Try
Return sql
End Function
我试过这种方法,但它不起作用,所以请帮助我
参数@values
指的是要检索的字段名称。所以它应该是一个字符串而不是 DateTime
(尽管这个提交的数据类型可能是 DateTime
)。
...
.Parameters.Add("@values", SqlDbType.NVarChar).Value = values
...
获取受影响的行:
Dim numRows as Integer
...
..
numRows=command.ExecuteNonQuery()