VB.NET新手在这里。
我已经(通过这个网站)了解了如何通过以下方式协商数据集:
For Each dRow In quanDS.Tables(0).Rows
'do something to each row
Next
我现在需要弄清楚现在循环遍历数据集中返回的记录的子集 - 这是我需要转换的VB6示例:
strSQL = "select * from tblDQ order by xid, xcode, xDOS"
rsMaster.Open strSQL, conDB, adOpenDynamic, adLockOptimistic
rsMaster.MoveFirst
Do While Not rsMaster.EOF
strxID = Trim(rsMaster!xID)
strxCode = Trim(rsMaster!xcode)
dblQuan = rsMaster!units
Do While Trim(rsMaster!xID) = strxID And Trim(rsMaster!xcode) = strxCode
rsMaster!unitdif = rsMaster!units - dblQuan
rsMaster.Update
dblQuan = rsMaster!units
rsMaster.MoveNext
If rsMaster.EOF Then
Exit Do
End If
Loop
Loop
rsMaster.Close
任何帮助都将不胜感激!
答案 0 :(得分:1)
你可以直接翻译。 rs!fieldName
语法转换为VB.NET中的row("fieldName")
。
但是如果你使用LINQ会更容易。
答案 1 :(得分:1)
将其转换为SQLDataReader以替换记录集会非常简单。基本上,语法是
using conn as new sqlconnection({connection string})
using cmd as new sqlcommand("select * from tblDQ order by xid, xcode, xDOS", conn)
cmd.connection.open()
using reader as SQLDataReader = cmd.ExecuteDataReader()
while reader.read
do your thing here, referencing reader("field")
end while
end using 'dispose of the reader
end using 'dispose of teh command
end using 'close and dispose of the connection