将 SQL 查询存储到多维数组中
Store SQL Query into MultiDimensional Array
A 标题表明我正在尝试将查询存储到二维数组中。我一定是做错了什么,因为它似乎只将数组的最后一行存储在 (0,0) 到 (0,5) 列中(我猜那只是第一列 lol)
在建议我使用列表之前,我的下一步是随机化数组以在每次调用时输出不同的内容。那部分我已经想通了,但是我一直在读这个数组废话时绊倒了。
这是我目前拥有的:
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = "C:\Users\Ashleysaurus\Documents\test.accdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
Dim Str As String
Dim dr As OleDbDataReader
Dim myArray(2, 5) As String
myConnection.Open()
Str = "SELECT Question, Answer1, Answer2, Answer3, Answer4, CorrectAnswer FROM Critters;"
Dim cmd As OleDbCommand = New OleDbCommand(Str, myConnection)
dr = cmd.ExecuteReader
While dr.Read()
Dim i As Integer = 0
myArray(i, 0) = CType(dr("Question"), String)
myArray(i, 1) = CType(dr("Answer1"), String)
myArray(i, 2) = CType(dr("Answer2"), String)
myArray(i, 3) = CType(dr("Answer3"), String)
myArray(i, 4) = CType(dr("Answer4"), String)
myArray(i, 5) = CType(dr("CorrectAnswer"), String)
i = i + 1
End While
myConnection.Close()
你有一个简单的错误。变量 i 的声明和初始化应该在循环外
Dim i As Integer = 0
While dr.Read()
....
但我更喜欢将数据表与这样的代码一起使用
Dim dt = new DataTable()
dt.Load(cmd.ExecuteReader)
现在您可以或多或少地像二维数组一样使用 DataTable
Dim question as string = dt.Rows(0)(0)
for each row as DataRow in dt.Rows
Console.WriteLine("Question = " & row(0).ToString())
Next
A 标题表明我正在尝试将查询存储到二维数组中。我一定是做错了什么,因为它似乎只将数组的最后一行存储在 (0,0) 到 (0,5) 列中(我猜那只是第一列 lol)
在建议我使用列表之前,我的下一步是随机化数组以在每次调用时输出不同的内容。那部分我已经想通了,但是我一直在读这个数组废话时绊倒了。
这是我目前拥有的:
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = "C:\Users\Ashleysaurus\Documents\test.accdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
Dim Str As String
Dim dr As OleDbDataReader
Dim myArray(2, 5) As String
myConnection.Open()
Str = "SELECT Question, Answer1, Answer2, Answer3, Answer4, CorrectAnswer FROM Critters;"
Dim cmd As OleDbCommand = New OleDbCommand(Str, myConnection)
dr = cmd.ExecuteReader
While dr.Read()
Dim i As Integer = 0
myArray(i, 0) = CType(dr("Question"), String)
myArray(i, 1) = CType(dr("Answer1"), String)
myArray(i, 2) = CType(dr("Answer2"), String)
myArray(i, 3) = CType(dr("Answer3"), String)
myArray(i, 4) = CType(dr("Answer4"), String)
myArray(i, 5) = CType(dr("CorrectAnswer"), String)
i = i + 1
End While
myConnection.Close()
你有一个简单的错误。变量 i 的声明和初始化应该在循环外
Dim i As Integer = 0
While dr.Read()
....
但我更喜欢将数据表与这样的代码一起使用
Dim dt = new DataTable()
dt.Load(cmd.ExecuteReader)
现在您可以或多或少地像二维数组一样使用 DataTable
Dim question as string = dt.Rows(0)(0)
for each row as DataRow in dt.Rows
Console.WriteLine("Question = " & row(0).ToString())
Next