Solved

C# Datasets and XML and data question

Posted on 2004-04-03
4
217 Views
Last Modified: 2010-04-15
Hi All,

I have a problem with the new datasets and getting data from them.
The way I unbderstand , once you make a call to the database, the result is returned in a 'DataSet'. The contents however are not easily avaliable like in C++. The only access to data I found is the XML string.

I need to know how can I traverse the dataset and access specific values. I'm looking to make this dataset as much a recordset as I can. So my I have two questions:

1) Is there a way to treat the DataSet as a Recordset?
2) If not are there ny XML /parser classes in C# which I could use to create my own recordset.


Thanks
Peter
0
Comment
Question by:Pete2003
  • 2
  • 2
4 Comments
 
LVL 48

Accepted Solution

by:
AlexFM earned 250 total points
Comment Utility
0
 
LVL 48

Expert Comment

by:AlexFM
Comment Utility
You may work with old ADO in .NET. You may work with ADO .NET without using of DataSets. For example, this is function from my exersize which reads database table and fills ListView without DataSet:

        public void FillListBox()
        {
            SqlConnection myConnection = null;
            SqlCommand myCommand;
            SqlDataReader myReader;

            try
            {
                String sQuery = @"SELECT * FROM Employees";
                myConnection = new SqlConnection(connectionString);
                myCommand = new SqlCommand(sQuery, myConnection);
                myConnection.Open();
                myReader = myCommand.ExecuteReader();

                int nID;
                String sFirstName, sLastName;

                while (myReader.Read())
                {
                    nID = myReader.GetInt32(myReader.GetOrdinal(fieldID));
                    sFirstName = myReader.GetString(myReader.GetOrdinal(fieldFirstName));
                    sLastName = myReader.GetString(myReader.GetOrdinal(fieldLastName));

                    // Add item to listview
                    ListViewItem item = new ListViewItem(nID.ToString());
                    item.SubItems.Add(sFirstName);
                    item.SubItems.Add(sLastName);

                    listView.Items.Add(item);
                }

                initSucceeded = true;
            }
            catch ( Exception ex )
            {
                MessageBox.Show(parentForm, ex.Message, errorTitle);
            }
            finally
            {
                if ( myConnection != null )
                    myConnection.Close();
            }
        }

However, if you are using DataSet, accessing it's rows is easy like accessing of array elements. In the followind sample employeesTable is reference to the table from DataSet:

employeesTable = dataSet.Tables[Employees];

        public void FillListView()
        {
            try
            {
                String sID, sFirstName, sLastName;
                DataRowCollection rows = employeesTable.Rows;
                DataRow row;

                // Read all rows in collection
                for ( int i = 0; i < rows.Count; i++ )
                {
                    row = rows[i];

                    // Extract fields from row
                    sID = row[fieldID].ToString();
                    sFirstName = row[fieldFirstName].ToString();
                    sLastName = row[fieldLastName].ToString();

                    // Add item to listview
                    ListViewItem item = new ListViewItem(sID);
                    item.SubItems.Add(sFirstName);
                    item.SubItems.Add(sLastName);

                    listView.Items.Add(item);
                }
            }
            catch ( Exception ex )
            {
                MessageBox.Show(parentForm, ex.Message, errorTitle);
            }
        }

Decide what way is best for you.
0
 

Author Comment

by:Pete2003
Comment Utility
Txs for the info ...

I do however have a problem as I do not use VB(your 1st post)  or SQL Server ... I'll be using the Oracle classes connecting to an oracle server. As far as I see it Oracle only returns datasets, so therfore I will only be able to work with those.
0
 

Author Comment

by:Pete2003
Comment Utility
Not to worry I found some dosumentation on oracle and ADO and figured out myself ... txs anyway
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

772 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now