3.11. Getting Typed DataRows from DataViews
Problem
When using a DataView to find rows in a
typed DataSet, you want
to convert the rows you find to typed DataRow
objects having all the properties and methods defined in your typed
DataSet.
Solution
Cast the DataRow object returned by the
Row property of a DataRowView
to a typed DataRow.
The sample code contains two event handlers:
Form.LoadSets up the sample by creating a typed
DataSetcontaining the Categories table from the Northwind sample database. The default view of the typed Categories table sorted by the CategoryID is bound to the data grid on the form.- Find
Button.Click Finds the row in the view matching the user specified CategoryID, gets the underlying table row, and casts that to the typed row.
The C# code is shown in Example 3-11.
Example 3-11. File: TypedDataRowFromDataViewForm.cs
// Namespaces, variables, and constants using System; using System.Configuration; using System.Windows.Forms; using System.Text; using System.Data; using System.Data.SqlClient; private DataView dv; // Table name constants private const String CATEGORIES_TABLE = "Categories"; // . . . private void TypedDataRowFromDataViewForm_Load(object sender, System.EventArgs e) { // Create the typed DataSet. CategoriesDS dsTyped = new CategoriesDS( ); // Create and fill the Categories table. String sqlText = "SELECT CategoryID, CategoryName, Description FROM Categories"; SqlDataAdapter da = new SqlDataAdapter(sqlText, ConfigurationSettings.AppSettings["Sql_ConnectString"]); ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access