首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySqlDataReader不返回数据

MySqlDataReader不返回数据
EN

Stack Overflow用户
提问于 2014-10-24 11:24:45
回答 1查看 293关注 0票数 0

作为通过屏幕抓取将数据导入wordpress的项目的一部分,我有一个存储在MySQL数据库中的新旧URL的数据库表。在下面的示例中,ExecuteReader命令似乎没有返回任何数据(-1行已生效),我已经通过工作台运行了SQL,它返回数据,所以它不是SQL或数据库中的数据。

在其他时候,在代码中,我调用了ExecuteNonQuery()和ExecuteScalar(),两者都没有问题(所以它不是连接字符串)。

知道接下来该做什么吗?

代码语言:javascript
复制
    Dim SQL As String
    Dim conn As MySqlConnection = New MySqlConnection(_CONNECTIONSTRING)

    SQL = "SELECT OrgURL, NewURL FROM `wp_user`.`tbl_linkdata`"

    Try
        conn.Open()
        Dim cmd As MySqlCommand = New MySqlCommand(SQL, conn)
        Dim dr As MySqlDataReader = cmd.ExecuteReader()
        While (dr.Read)
            LinkHashMap.Add(dr.GetString(0), dr.GetString(1))
        End While
        Console.ForegroundColor = ConsoleColor.Cyan
        Console.WriteLine("The Hash map contains " + dr.RecordsAffected + " rows")
        dr.Close()

    Catch ex As Exception
        Console.ForegroundColor = ConsoleColor.Red
        Console.WriteLine("Exception loading the hashtable : " + ex.Message)
    Finally
        conn.Dispose()
    End Try
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-24 12:40:16

DataReader.RecordsAffected总是为SELECT命令返回-1。LinkHashMap.Count返回什么?在MySqlDataReader中,这是相同的:

“更改、插入或删除的行数。-1用于SELECT语句”

如果您想要计算记录的数量,可以使用LinkHashMap.Count

你:"LinkHashMap是什么“

如何在不首先初始化的情况下向其添加某些内容?NullReferenceException本应该发生的。因此,首先通过构造函数初始化字典(或它是什么):

代码语言:javascript
复制
Dim LinkHashMap As New Dictionary(Of String, String)
While (dr.Read)
    LinkHashMap.Add(dr.GetString(0), dr.GetString(1))
End While
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26546962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档