Solved

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

Posted on 2009-05-12
3
751 Views
Last Modified: 2013-11-07
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
Comment
Question by:ejefferson213
  • 2
3 Comments
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 500 total points
ID: 24366700
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
 

Author Comment

by:ejefferson213
ID: 24366793
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
 

Author Closing Comment

by:ejefferson213
ID: 31580621
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

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Here is a helpful source code for C++ Builder programmers that allows you to manage and manipulate HTML content from C++ code, while also handling HTML events like onclick, onmouseover, ... Some objects defined and used in this source include: …
Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource.  In this article, we'll go over creating a report from a default template and setting up a datasource that connects to your database.
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.
The viewer will learn how to synchronize PHP projects with a remote server in NetBeans IDE 8.0 for Windows.

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question