Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在VB 2010中将数据库记录读入内存变量时出现问题_Database_Vb.net - Fatal编程技术网

Database 在VB 2010中将数据库记录读入内存变量时出现问题

Database 在VB 2010中将数据库记录读入内存变量时出现问题,database,vb.net,Database,Vb.net,我遵循了stackoverflow的一个示例,介绍了如何将数据库记录读入变量。这是第一次这样做,我觉得我很接近,但我对这个问题感到困惑 以下是我所指的链接: 我的代码如下所示 Public Class Form1 ' DataSet/DataTable variables Dim testdataDataSet As New DataSet Dim dttestdataDataTable As New DataTable Dim

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

以下是我所指的链接:

我的代码如下所示

 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 DB,它只包含一条记录和两个字段,我希望在整个程序中使用这两个字段。示例中说,将每个字段的变量设置为字符串,但这会产生更多的设置为字符串的错误,因此我将它们设置为整数,同时注释掉原始的设置为字符串的语句(因为它们将用于计算)dataadapter和datatable变量也会被标记为在程序早期未声明。我知道这一定是一个简单的事情来解决,但我只是没有看到它

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


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

当你试图学习新技术时,通常最好从外向内学习。在您的例子中,“最外面的”对象似乎是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
首先解决该级别的错误。然后为数据适配器添加一个声明(仅针对数据适配器),并解决由此产生的任何错误。重复,直到你完成你的课程


请参阅,如果需要,请参阅。

我很抱歉没有及时写出答案,以结束这个问题并总结它

在我的例子中,它是一个名为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语句之后,将变量调暗为您想要的值(在本例中,speed是一个整数,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

谢谢大家的回复

我添加了连接字符串,并尝试对数据适配器仅使用dim语句,但没有解析。事实上,我现在得到的错误是,connection.Open()和.Close()语句需要声明(??)它仍然不喜欢我设置的变量来存储这个单记录数据库中的两条糟糕的信息,说它需要声明…我写的与我下面的示例没有太大区别。为什么VB 2010要求我调暗connection.open(),而我看到的每个示例都没有显示这一点?