【问题标题】:Trouble reading database records into memory variables in VB 2010在 VB 2010 中将数据库记录读入内存变量时遇到问题
【发布时间】:2011-12-21 17:03:12
【问题描述】:

我在 stackoverflow 上遵循了一个关于如何将数据库记录读入变量的示例。这是第一次这样做,我觉得我很接近,但我对这个问题感到困惑。

这是我所指的链接: Visual Basic 2010 DataSet

我的代码如下所示。

 Public Class Form1
        ' DataSet/DataTable variables
        Dim testdataDataSet As New DataSet
        Dim dttestdataDataTable As New DataTable
        Dim datestdataDataAdapter As New Odbc.OdbcDataAdapter

       ' Variables for retrieved data
       ' Dim sSpeed As String = ""
       ' Dim sFuelprice As String = ""
       Dim sSpeed As Integer
       Dim sFuelprice As Integer


       'Connect to the database 
       ''

       'Fill DataSet and assign to DataTable
       datestdataDataAdapter.Fill(TestdataDataSet , "TestdataDataSet")
       dttestdataDataTable = TestdataDataSet.Tables(0)

      'Extract data from DataTable
      ' Rows is the row of the datatable, item is the column

      sSpeed  = dtTestdataDataTable.Rows(0).Item(0).ToString
      sFuelprice  = dtTestdataDataTable.Rows(0).Item(1).ToString

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    result.Text = Val(miles.Text) * sSpeed * sFuelprice
End Sub

End Class

基本上,我遇到了声明错误,我不明白为什么,因为我遵循的示例清楚地声明了它们。我正在连接一个名为“testdata.mdb”的 Access 数据库,它只包含 1 条记录,其中包含我想在整个程序中使用的两个字段。示例说将每个字段的变量调暗为字符串,但这会产生更多的暗淡错误,所以我将它们变成整数并同时注释掉原始的暗淡语句(因为它们将用于计算。)数据适配器和数据表变量也被标记为在程序早期时未声明。我知道这一定很容易解决,但我只是没有看到。

表单只是一个简单的事情,用户输入一个数字,然后使用从数据库中读取的数字生成结果。简而言之,我希望能够在程序中使用数据库进行简单的计算,而 dim 语句的事情阻碍了。

如果有人能澄清我应该做什么,那将不胜感激。谢谢!

【问题讨论】:

    标签: database vb.net


    【解决方案1】:

    当您尝试学习新技术时,通常最好从外向内工作。在您的案例中,“最外”对象似乎是 OdbcConnection 对象。

    Public Class Form1
    
        Const connectionString as String = "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\bin\Northwind.mdb"
    
        Dim connection As New OdbcConnection(connectionString)
    
        connection.Open()
    
        connection.Close()
    
    end Class
    

    首先解决该级别的错误。然后为数据适配器添加一个声明——only 为数据适配器——并用 that 解决任何错误。重复直到你完成你的课程。

    请参阅OdbcConnectionString,如果需要,请参阅connection string web site

    【讨论】:

    • 我添加了连接字符串并尝试仅对数据适配器使用 dim 语句,但没有解决。事实上,我现在收到错误说 connection.Open() 和 .Close() 语句需要声明(??)它仍然不喜欢我设置的变量来存储这两个糟糕的信息记录数据库,说它需要声明......我写的和我下面的例子没有太大不同。当我看到的每个示例都没有显示时,为什么 VB 2010 要求我调暗 connection.open()?
    【解决方案2】:

    对于延迟写答案以结束此问题并进行总结,我深表歉意。

    在我的例子中,它是一个名为 testdata 的单行数据库,包含 20 个字段。

    有效的解决方案如下:

    在form1_load事件之后,变量可以立即写入dataadapter行之后:

      Me.TestdataTableAdapter.Fill(Me.fooDataSet.testdata)
    
      speed = Me.fooDataSet.testdata(0).speed
      fuelprice = Me.fooDataSet.testdata(0).fuelprice
      mpg = Me.fooDataSet.testdata(0).mpg
    

    然后,只需在表单代码顶部的 PUBLIC CLASS 语句之后将变量调暗为您想要的任何值(在这种情况下,速度是一个整数,fuelprice 是一个小数,MPG 是一个小数)。

    然后,您可以在单击按钮后在计算中操作变量:

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            fuelcost = CDec((miles.Text/ mpg) * fuelprice)
            txtfuelcost.Text = fuelcost.ToString
     End Sub
    

    感谢大家的回复!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2017-11-19
      • 2014-08-04
      • 2019-01-28
      • 2023-01-20
      • 2016-05-19
      相关资源
      最近更新 更多