• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 768
  • Last Modified:

How do you get VB.Net Dataset Object to recognize multiple tables?

New to VB.Net and trying to read two tables from the same database into the same Dataset object.  I've included a small section of the code below which is not working (it's failing on the first Session statement).  The Visual Studio debugger says that the field "Entry Education Level" is not in the table; however, there is no doublt that it is. I've checked the database for spelling errors and the table is there.  Also,  with the debugging window available, I can see that the Dataset object appears to be confused because when it reports on the number of fields (columns) in this table (Client Education) it says 29 which is actually the number of fields in the Clients table.  I'm sure I'm not correctly initializing some variables.  Any help greatly appreciated.
Dim connection As New Data.OleDb.OleDbConnection _
         ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
         "Data Source=e:\webdatabase.mdb")
        connection.Open()
        Dim SelectString As String
        SelectString = "select * from Clients where [First Name] = '1' and [Last Name] = '2'"
        Dim SelectCommand As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand(SelectString)
        Dim Adapter As New Data.OleDb.OleDbDataAdapter()
        Dim Dataset1 As New Data.DataSet()
        Adapter.SelectCommand = SelectCommand
        SelectCommand.CommandType = Data.CommandType.Text
        SelectCommand.Connection = connection
        Adapter.Fill(Dataset1, "Clients")
 
        SelectString = "select * from [Client Education] where ClientID = '377'"
        Adapter.Fill(Dataset1, "Client Education")
        If (Dataset1.Tables("Client Education").Rows.Count <> 0) Then
            Session("Education") = Dataset1.Tables("Client Education").Rows(0).Item("Entry Education Level")
            Session("Highgrade") = Dataset1.Tables("Client Education").Rows(0).Item("Highest Grade Completed")
            Session("College") = Dataset1.Tables("Client Education").Rows(0).Item("Current College")
            Session("Pasteducation") = Dataset1.Tables("Client Education").Rows(0).Item("Past Education Activity")
        End If

Open in new window

0
ejefferson213
Asked:
ejefferson213
  • 2
1 Solution
 
Éric MoreauSenior .Net ConsultantCommented:
can you try this:
Dim connection As New Data.OleDb.OleDbConnection _
         ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
         "Data Source=e:\webdatabase.mdb")
        connection.Open()
        Dim SelectString As String
        SelectString = "select * from Clients where [First Name] = '1' and [Last Name] = '2'; select * from [Client Education] where ClientID = '377'"
        Dim SelectCommand As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand(SelectString)
        Dim Adapter As New Data.OleDb.OleDbDataAdapter()
        Dim Dataset1 As New Data.DataSet()
        Adapter.SelectCommand = SelectCommand
        SelectCommand.CommandType = Data.CommandType.Text
        SelectCommand.Connection = connection
        Adapter.Fill(Dataset1)
 
        If (Dataset1.Tables(1).Rows.Count <> 0) Then
            Session("Education") = Dataset1.Tables(1).Rows(0).Item("Entry Education Level")
            Session("Highgrade") = Dataset1.Tables(1).Rows(0).Item("Highest Grade Completed")
            Session("College") = Dataset1.Tables(1).Rows(0).Item("Current College")
            Session("Pasteducation") = Dataset1.Tables(1).Rows(0).Item("Past Education Activity")
        End If

Open in new window

0
 
ejefferson213Author Commented:
Got the following error message: Characters found after end of SQL statement.  As I'm interfacing with an Access database, I'm suspecting that having these statements together is confusing Access?!?!?!?!
0
 
ejefferson213Author Commented:
After repeated tries, I found the solution.  It would appear that once you declare the command object and give it the query string, it is retained (the query string) until you reset it.  By that I mean I had changed the query string but never called on       oledbcommandobject.CommandText = SelectString.    Once I did that the code worked fine.   Thanks for taking the time to try and help.
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now