我有一个使用 MySQL
数据库的 vb.net 程序。现在我将数据库更改为 Microsoft Access 2010
。我更改了所有必要的设置,例如连接首选项、命令等。
问题是:我遇到了一个错误
mydata = mycommand.ExecuteReader
它会产生一个错误:
Error 1 Value of type 'System.Data.OleDb.OleDbDataReader' cannot be converted to 'MySql.Data.MySqlClient.OleDb.OleDbDataReader'
整个代码是:
Public Sub showAlarm()
Try
Dim conn As New OleDb.OleDbConnection(connection)
Dim myadapter As New OleDb.OleDbDataAdapter
conn.Open()
Dim sqlquery = "select * from alarm"
Dim mycommand As New OleDb.OleDbCommand
mycommand.Connection = conn
mycommand.CommandText = sqlquery
myadapter.SelectCommand = mycommand
Dim mydata As MySqlDataReader
mydata = mycommand.ExecuteReader
'If mydata.HasRows = 0 Then
' MsgBox("Data Not Found")
' TextBox1.Clear()
'Else
mydata.Read()
TextBox1.Text = mydata.Item("subhi")
TextBox2.Text = mydata.Item("zuhur")
TextBox3.Text = mydata.Item("aser")
TextBox4.Text = mydata.Item("megrib")
TextBox5.Text = mydata.Item("isha")
'End If
conn.Close()
Catch ex As Exception
MessageBox.Show("There is a problem with your connection!")
End Try
End Sub
如何解决这个问题?
最佳答案
由于 mycommand
是一个 OleDbCommand
mycommand.ExecuteReader
返回一个 OleDbDataReader
但 mydata
是一个 MySqlDataReader
。因此,将 mydata
也更改为 OleDbDataReader
。
Dim mydata As OleDbDataReader = mycommand.ExecuteReader()
旁注:您应该使用 Using
语句来确保释放所有非托管资源:
Using conn As New OleDb.OleDbConnection(connection)
Using mycommand As New OleDb.OleDbCommand("select * from alarm", conn)
conn.Open()
Using mydata = mycommand.ExecuteReader()
If mydata.Read Then
' ... '
End If
End Using
End Using
End Using
关于mysql - OleDb 数据读取器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688540/