mysql - OleDb 数据读取器问题

标签 mysql vb.net ado.net oledb

我有一个使用 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 返回一个 OleDbDataReadermydata 是一个 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/

相关文章:

c# - 如何通过SqlConnection获取最后执行的SQL查询?

php - JavaScript 头像

php - 获取mysql数据的更快方法

asp.net-mvc - 使用 MVC Contrib 测试 ASP.NET MVC 路由

sql-server - LINQ to SQL 和 DBML 文件——多数据库开发

Oracle db 给出 ORA-01722 似乎没有任何原因

php/laravel - 如何根据最大数字排列数组并对其进行编号

mysql - MySQL插入查询中的用户定义变量

json - 跟踪 HttpWebRequest 和 HttpWebResponse 的进度

c# - .NET 系统类型到 SqlDbType