Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 225
  • Last Modified:

C# Datasets and XML and data question

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
Pete2003
Asked:
Pete2003
  • 2
  • 2
1 Solution
 
AlexFMCommented:
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
 
Pete2003Author Commented:
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
 
Pete2003Author Commented:
Not to worry I found some dosumentation on oracle and ADO and figured out myself ... txs anyway
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

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