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()