Modifying Data Using a Strongly Typed DataSet

Modifying Data Using a Strongly Typed DataSet

In Chapter 10, you saw how to create and use a strongly typed DataSet class named MyDataSet. You can use objects of this class to represent the Customers table and rows from that table. In this section, you'll see how to modify data using a strongly typed object of the MyDataSet class.

Note 

One of the features of a strongly typed DataSet object allows you to read a column value using a property with the same name as the column. For example, to read the CustomerID of a column you can use myDataRow.CustomerID rather than myDataRow["CustomerID"]. See Chapter 10 for more details on reading column values.

The following methods in the MyDataSet class allow you to modify the rows stored in a MyDataSet object: NewCustomersRow(), AddCustomersRow(), and RemoveCustomersRow(). You can find a row using the FindByCustomerID() method. You can check if a column value contains a null value using methods such as IsContactNameNull(), and you can set a column to null using methods such as SetContactNameNull(). You'll see these methods used shortly.

Note 

You'll find a completed VS .NET example project for this section in the StronglyTypedDataSet2 directory. You can open this project in VS .NET by selecting File Open Project and opening the WindowsApplication4.csproj file. You'll need to change the ConnectionString property of the sqlConnection1 object to connect to your Northwind database.

The Form1_Load() method of the form in the example project shows how to add, modify, and remove a row to a strongly typed DataSet object named myDataSet1. You can see the steps that accomplish these tasks in the following Form1_Load() method:

 private void Form1_Load(object sender, System.EventArgs e) {   // populate the DataSet with the CustomerID, CompanyName,   // and Address columns from the Customers table   sqlConnection1.Open();   sqlDataAdapter1.Fill(myDataSet1, "Customers");   // get the Customers DataTable   MyDataSet.CustomersDataTable myDataTable =     myDataSet1.Customers;   // create a new DataRow in myDataTable using the   // NewCustomersRow() method of myDataTable   MyDataSet.CustomersRow myDataRow =     myDataTable.NewCustomersRow();   // set the CustomerID, CompanyName, and Address of myDataRow   myDataRow.CustomerID = "J5COM";   myDataRow.CompanyName = "J5 Company";   myDataRow.Address = "1 Main Street";   // add the new row to myDataTable using the   // AddCustomersRow() method   myDataTable.AddCustomersRow(myDataRow);   // push the new row to the database using   // the Update() method of sqlDataAdapter1   sqlDataAdapter1.Update(myDataTable);   // find the row using the FindByCustomerID()   // method of myDataTable   myDataRow = myDataTable.FindByCustomerID("J5COM");   // modify the CompanyName and Address of myDataRow   myDataRow.CompanyName = "Widgets Inc.";   myDataRow.Address = "1 Any Street";   // push the modification to the database   sqlDataAdapter1.Update(myDataTable);   // display the DataRow objects in myDataTable   // in the listView1 object   foreach (MyDataSet.CustomersRow myDataRow2 in myDataTable.Rows)   {     listView1.Items.Add(myDataRow2.CustomerID);     listView1.Items.Add(myDataRow2.CompanyName);     // if the Address is null, set Address to "Unknown"     if (myDataRow2.IsAddressNull() == true)     {       myDataRow2.Address = "Unknown";     }     listView1.Items.Add(myDataRow2.Address);   }   // find and remove the new row using the   // FindByCustomerID() and RemoveCustomersRow() methods   // of myDataTable   myDataRow = myDataTable.FindByCustomerID("J5COM");   myDataTable.RemoveCustomersRow(myDataRow);   // push the delete to the database   sqlDataAdapter1.Update(myDataTable);   sqlConnection1.Close(); } 

Feel free to compile and run the example form.




Mastering C# Database Programming
Mastering the SAP Business Information Warehouse: Leveraging the Business Intelligence Capabilities of SAP NetWeaver
ISBN: 0764596373
EAN: 2147483647
Year: 2003
Pages: 181

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net