Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

C# Datasets and XML and data question

Posted on 2004-04-03
4
Medium Priority
?
224 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 1000 total points
ID: 10752288
0
 
LVL 48

Expert Comment

by:AlexFM
ID: 10752316
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
ID: 10757153
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
ID: 10759033
Not to worry I found some dosumentation on oracle and ADO and figured out myself ... txs anyway
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

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

In order to hide the "ugly" records selectors (triangles) in the rowheaders, here are some suggestions. Microsoft doesn't have a direct method/property to do it. You can only hide the rowheader column. First solution, the easy way The first sol…
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…
Please read the paragraph below before following the instructions in the video — there are important caveats in the paragraph that I did not mention in the video. If your PaperPort 12 or PaperPort 14 is failing to start, or crashing, or hanging, …
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…

926 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