无法在VB 2010中将数据库记录读入内存变量

时间:2011-12-21 17:03:13

标签: database vb.net

我在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数据库,该数据库只包含一条记录,其中包含两个我希望在整个程序中使用的字段。 exanple表示将每个字段的变量调暗为字符串,但这会产生更多的暗淡错误,因此我将它们变成整数并在此期间注释掉原始的暗淡语句(因为它们将用于计算。)数据适应器和数据表变量也会被标记为在程序中较早时未被声明。我知道这一定是一件很简单的事情,但我只是没有看到它。

表单只是一个简单的事情,用户键入一个数字,并使用从数据库中读入的数字生成结果。简而言之,我希望能够在程序中对数据库进行简单的计算,并且暗淡的声明正在阻碍。

如果有人可以澄清我应该做些什么,那将非常感激。谢谢!

2 个答案:

答案 0 :(得分:0)

当你尝试学习新技术时,通常最好从外部工作。在你的情况下,“最外面”的对象似乎是一个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

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

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

答案 1 :(得分:0)

我为延迟写下关闭这个问题的答案而道歉并总结一下。

就我而言,它的数据集是一个名为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语句之后,将变量DIM变为你想要的变量(在这种情况下,speed是一个整数,fuelprice是小数,MPG是小数)。 / p>

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

 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

谢谢大家的回复!