none
VB 2010 连接Access数据库时的问题 RRS feed

  • 问题

  • 最近初学visual basic 2010,想将一个MDB数据库中的“Main”表中的“class”字段的所有记录添加进“combobox”控件,以下是我的代码,但运行后就出错,这几行代码是网上查阅了无数例子写成的。

    数据库就在项目的根目录

    Imports System.Data.OleDb

    Public Class Form1

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=db1.mdb;Database Password=a")
            Dim mydataset As New DataSet()
            Dim myadapter As New OleDbDataAdapter("select * from Main", conn)
            myadapter.Fill(mydataset, "Main")
            ComboBox1.DataSource = mydataset
            ComboBox1.DisplayMember = "Main.class"
            conn.Close()
        End Sub
    End Class

     

    谢谢高手给予解答。


    myriceme
    2011年1月1日 5:29

答案

  •  

    Hello lilin,

     

           Welcome to MSDN Forum.

     

         根据您提供的代码,我测试了一下,代码是没有错误的,错误产生的原因,我想是数据库存放的位置,如果您没指定路径的话,应该放在项目的bin\Release文件夹下(Express版本要放在bin\Debug文件夹下),在运行之前,确保目标CPUx86就可以了。

     

    I hope this information will be useful

    Best regards

    Rocky

    2011年1月4日 2:31
  • 谢谢rocky_msdn的回复:

    这个问题终于搞定了,新代码如下:

            Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Jet OLEDB:Database Password=a"
            Dim SQLString As String = "SELECT MeasClass FROM Main"
            Dim OleDBConn1 As OleDbConnection = New OleDbConnection(ConnString)
            Dim cmddbconn1 As OleDbCommand = New OleDbCommand(SQLString)
            OleDBConn1.Open()

            Dim OleDBCmd1 As New OleDbCommand("SELECT measclass FROM Main", OleDBConn1)

            Dim OleDBReader1 As OleDbDataReader
            OleDBReader1 = OleDBCmd1.ExecuteReader
            While OleDBReader1.Read

                ComboBox1.Items.Add(OleDBReader1.GetString(0))

            End While

     

    我参照了“ADO.NET 数据库实例教程”这个帖子的内容。

    地址如下:http://social.microsoft.com/forums/zh-cn/adonetzhchs/thread/71138AF5-5B82-4CEF-8DE0-39D8376965AA


    myriceme
    2011年1月4日 5:17

全部回复

  •  

    Hello lilin,

     

           Welcome to MSDN Forum.

     

         根据您提供的代码,我测试了一下,代码是没有错误的,错误产生的原因,我想是数据库存放的位置,如果您没指定路径的话,应该放在项目的bin\Release文件夹下(Express版本要放在bin\Debug文件夹下),在运行之前,确保目标CPUx86就可以了。

     

    I hope this information will be useful

    Best regards

    Rocky

    2011年1月4日 2:31
  • 谢谢rocky_msdn的回复:

    这个问题终于搞定了,新代码如下:

            Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Jet OLEDB:Database Password=a"
            Dim SQLString As String = "SELECT MeasClass FROM Main"
            Dim OleDBConn1 As OleDbConnection = New OleDbConnection(ConnString)
            Dim cmddbconn1 As OleDbCommand = New OleDbCommand(SQLString)
            OleDBConn1.Open()

            Dim OleDBCmd1 As New OleDbCommand("SELECT measclass FROM Main", OleDBConn1)

            Dim OleDBReader1 As OleDbDataReader
            OleDBReader1 = OleDBCmd1.ExecuteReader
            While OleDBReader1.Read

                ComboBox1.Items.Add(OleDBReader1.GetString(0))

            End While

     

    我参照了“ADO.NET 数据库实例教程”这个帖子的内容。

    地址如下:http://social.microsoft.com/forums/zh-cn/adonetzhchs/thread/71138AF5-5B82-4CEF-8DE0-39D8376965AA


    myriceme
    2011年1月4日 5:17
  • Hello lilin,

           Welcome to the MSDN Forum.

             ComboBox ListBox 的用数据库中的数据填充,有2种方式,一种就像你搞定那种,一条一条的加,用DataReader 连接式的,另一种就是DataSet,断开式的链接,就像你提问的帖子中那样绑定数据库,设置ComboBoxListBox的数据源和显示项。

           很高兴您能搞定您的问题,我想您需要更多的更详细的连接字符串,请参考:http://www.connectionstrings.com/,如果你在编程中遇到什么问题,欢迎再次来到MSDN 中文论坛。

     

    Best Regards

    Rocky

     

    2011年1月5日 1:37