我想从我的数据库中获取相同的值,因此我正在使用此查询:
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
我试过这种方式,但它不起作用所以请帮助我
答案 0 :(得分:0)
参数@values
是指您要检索的字段的名称。所以它应该是一个字符串而不是DateTime
(尽管这个字段的数据类型可能是DateTime
)。
...
.Parameters.Add("@values", SqlDbType.NVarChar).Value = values
...
让行受影响:
Dim numRows as Integer
...
..
numRows=command.ExecuteNonQuery()