【问题标题】:Need recordset behavior in VB.NET w/ADO help需要 VB.NET 中的记录集行为 w/ADO 帮助
【发布时间】:2010-12-07 03:57:56
【问题描述】:

这里是 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.关闭

任何帮助都将不胜感激!

【问题讨论】:

    标签: vb.net ado.net vb6 dataset


    【解决方案1】:

    你可以直接翻译。 rs!fieldName 语法在 VB.NET 中转换为 row("fieldName")

    不过,如果您使用 LINQ 会更容易。

    【讨论】:

    • 我可能需要研究 LINQ。恐怕我对开始翻译的东西的 VB.NET 布局了解得不够多。不知道如何声明/初始化记录集等。
    • 您没有声明记录集。您已经获得了 DataSet,并且您的代码表明您知道如何遍历行。
    • 在 VB.NET 中 row!fieldname 不合法吗?我知道它适用于 SQLDataReader
    • John - 当前的挑战是 rsMaster.open 语句。我在尝试打开记录集时遇到了很多 COM 异常错误——系统在源和连接上都阻塞了。如果我可以打开记录集,我会很棒。只是撬开那个被证明是挑战的东西......
    • @Dave:你不是已经让 DataSets 工作了吗?根本不要使用记录集。仅使用数据集。
    【解决方案2】:

    将其转换为 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
    

    【讨论】:

    • 确认!几乎,但不是读者是只读结构吗?我需要用代码更新数据库中的一个字段。
    • 哎呀-是的。错过了 - 没有给予足够的关注。那么 LINQ 肯定会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 2011-02-24
    • 2014-08-15
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    相关资源
    最近更新 更多