查询访问Visual Basic

时间:2013-06-04 02:32:29

标签: sql vb.net

我试图弄清楚如何使用visual basic查询访问数据库,但我正在寻找一个关于它如何实际工作的一些解释。

我感到困惑的是,我陈述了一个命令SELECT * FROM PIPI作为表格),但直接在那之下,我说的是TextBox1.Text = theDataTable.Rows(0).Item(1)

我只是想知道为什么我有一个查询命令,然后是一个单独的命令,它将转到指定的Row和Item ....任何帮助都非常感谢!

Imports System.Data.OleDb

Public Class Form1

Dim theConnectionString As New OleDbConnection

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    txtSQL.Clear()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    theConnectionString.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Marc Wilson\Documents\FiddleFuckDB.accdb"
    theConnectionString.Open()
    Dim theDataSet As New DataSet
    Dim theDataTable As New DataTable
    theDataSet.Tables.Add(theDataTable)
    Dim theDataAdapter As New OleDbDataAdapter

    theDataAdapter = New OleDbDataAdapter("SELECT * FROM PI", theConnectionString)
    theDataAdapter.Fill(theDataTable)

    TextBox1.Text = theDataTable.Rows(0).Item(1)



    theConnectionString.Close()

    End Sub
End Class

4 个答案:

答案 0 :(得分:0)

喜欢这个

"SELECT * FROM PI Where FieldName = '" & TextBox1.Text & "'"

假设您的字段类型不是数字

答案 1 :(得分:0)

由于您正在使用ADO.NET DataTable - 该对象由Rows集合组成,而每一行又由Items集合组成。因此,为了获得特定值,您需要使用

Table.Rows(X)(Y)

符号。即使您的查询返回单个值 - 您也可以使用此方法。特别是查看代码和Items(1),看起来您的查询至少返回2列。

如果您只对单个值感兴趣,请考虑在查询中指定单个列名,确保它返回单行(例如,通过向查询添加WHERE子句)并使用{{ 1}} ADO.NET命令,与Fill和DataTable不同,仅返回单个值。

答案 2 :(得分:0)

不是100%肯定我会回答这个问题,但希望这会有所帮助:

query命令从数据库中的表中获取所有记录。 Rows()和Item()方法从特定记录中获取特定字段(在本例中为第一个记录的第二个字段)。

TextBox的Text属性无法独立显示整个表:DataTable是一个相当复杂的数据结构。 TextBoxes需要一个字符串(或类似的字符串)。

答案 3 :(得分:0)

SELECT * FROM PI告诉数据库引擎它应该从存在于 on-disk 的底层数据库表中检索哪些数据。

您正在使用表示数据 in-memory DataTable类:DataAdapter类从磁盘读取数据(使用SQL语句)并将其复制到内存中然后,您可以使用Rows(0).Item(1)命令获取内存中已有数据的副本。

另一种方法是使用更直接,更简单的DataReader。在你的情况下,我不明白为什么你使用DataTable课,因为DataReader对你很好。