作为通过屏幕抓取将数据导入wordpress的项目的一部分,我有一个存储在MySQL数据库中的新旧URL的数据库表。在下面的示例中,ExecuteReader命令似乎没有返回任何数据(-1行已生效),我已经通过工作台运行了SQL,它返回数据,所以它不是SQL或数据库中的数据。
在其他时候,在代码中,我调用了ExecuteNonQuery()和ExecuteScalar(),两者都没有问题(所以它不是连接字符串)。
知道接下来该做什么吗?
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发布于 2014-10-24 12:40:16
DataReader.RecordsAffected总是为SELECT命令返回-1。LinkHashMap.Count返回什么?在MySqlDataReader中,这是相同的:
“更改、插入或删除的行数。-1用于SELECT语句”
如果您想要计算记录的数量,可以使用LinkHashMap.Count。
你:"LinkHashMap是什么“
如何在不首先初始化的情况下向其添加某些内容?NullReferenceException本应该发生的。因此,首先通过构造函数初始化字典(或它是什么):
Dim LinkHashMap As New Dictionary(Of String, String)
While (dr.Read)
LinkHashMap.Add(dr.GetString(0), dr.GetString(1))
End Whilehttps://stackoverflow.com/questions/26546962
复制相似问题