Csharp/C Sharp/Database ADO.net/DataView

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Create DataView through DataTable

<source lang="csharp"> using System; using System.Data; using System.Data.SqlClient;

  class DataViewExample
  {
     static void Main()
     {
        string connString = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI";
        string sql = @"select * from employee";
        SqlConnection conn = new SqlConnection(connString);
        try {
           SqlDataAdapter da = new SqlDataAdapter();
           da.SelectCommand = new SqlCommand(sql, conn);
           DataSet ds = new DataSet();
           da.Fill(ds, "employee");
           DataTable dt = ds.Tables["employee"];
           DataView dv = new DataView(dt,"lastname = "Z"", "lastname", DataViewRowState.CurrentRows);
           foreach (DataRowView drv in dv)
           {
              for (int i = 0; i < dv.Table.Columns.Count; i++){
                 Console.Write(drv[i] + "\t");
              }   
           }
        }
        catch(Exception e)
        {
           Console.WriteLine("Error: " + e);
        }
        finally
        {
           conn.Close();
        }
     }
  }


      </source>


illustrates the use of a DataView object to filter and sort rows

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example23_5.cs illustrates the use of a DataView object to
 filter and sort rows
  • /

using System; using System.Data; using System.Data.SqlClient; public class Example23_5 {

 public static void Main()
 {
   // formulate a string containing the details of the
   // database connection
   string connectionString =
     "server=localhost;database=Northwind;uid=sa;pwd=sa";
   // create a SqlConnection object to connect to the
   // database, passing the connection string to the constructor
   SqlConnection mySqlConnection =
     new SqlConnection(connectionString);
   // formulate a string containing a SELECT statement
   string selectString =
     "SELECT CustomerID, CompanyName, City, Country " +
     "FROM Customers";
   // create a SqlCommand object to hold the SELECT statement
   SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
   // set the CommandText property of the SqlCommand object to
   // the SELECT string
   mySqlCommand.rumandText = selectString;
   // create a SqlDataAdapter object
   SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
   // set the SelectCommand property of the SqlAdapter object
   // to the SqlCommand object
   mySqlDataAdapter.SelectCommand = mySqlCommand;
   // create a DataSet object to store the results of
   // the SELECT statement
   DataSet myDataSet = new DataSet();
   // open the database connection using the
   // Open() method of the SqlConnection object
   mySqlConnection.Open();
   // use the Fill() method of the SqlDataAdapter object to
   // retrieve the rows from the table, storing the rows locally
   // in a DataTable of the DataSet object
   Console.WriteLine("Retrieving rows from the Customers table");
   mySqlDataAdapter.Fill(myDataSet, "Customers");
   // create a DataView object
   DataView myDataView =
     new DataView(myDataSet.Tables["Customers"]);
   // set the RowFilter property of the DataView object
   myDataView.RowFilter = "Country = "UK"";
   // set the Sort property of the DataView object
   myDataView.Sort = "CustomerID ASC";
   // display the rows in the DataView object
   foreach (DataRowView myDataRowView in myDataView)
   {
     for (int count = 0; count < myDataView.Table.Columns.Count; count++)
     {
       Console.WriteLine(myDataRowView[count]);
     }
   }
   // close the database connection using the Close() method
   // of the SqlConnection object
   mySqlConnection.Close();
 }

}


      </source>


use the Find() and FindRows() methods of a DataView to find DataRowView objects

<source lang="csharp">


using System; using System.Data; using System.Data.SqlClient; class FindingDataRowViews {

   public static void Main() {
       SqlConnection mySqlConnection =
         new SqlConnection(
           "server=localhost;database=Northwind;uid=sa;pwd=sa"
         );
       SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
       mySqlCommand.rumandText =
         "SELECT CustomerID, CompanyName, Country " +
         "FROM Customers";
       SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
       mySqlDataAdapter.SelectCommand = mySqlCommand;
       DataSet myDataSet = new DataSet();
       mySqlConnection.Open();
       mySqlDataAdapter.Fill(myDataSet, "Customers");
       mySqlConnection.Close();
       DataTable customersDT = myDataSet.Tables["Customers"];
       string filterExpression = "Country = "UK"";
       string sortExpression = "CustomerID";
       DataViewRowState rowStateFilter = DataViewRowState.OriginalRows;
       DataView customersDV = new DataView();
       customersDV.Table = customersDT;
       customersDV.RowFilter = filterExpression;
       customersDV.Sort = sortExpression;
       customersDV.RowStateFilter = rowStateFilter;
       foreach (DataRowView myDataRowView in customersDV) {
           for (int count = 0; count < customersDV.Table.Columns.Count; count++) {
               Console.WriteLine(myDataRowView[count]);
           }
           Console.WriteLine("");
       }
       int index = customersDV.Find("BSBEV");
       Console.WriteLine("BSBEV found at index " + index + "\n");
       DataRowView[] customersDRVs = customersDV.FindRows("BSBEV");
       foreach (DataRowView myDataRowView in customersDRVs) {
           for (int count = 0; count < customersDV.Table.Columns.Count; count++) {
               Console.WriteLine(myDataRowView[count]);
           }
           Console.WriteLine("");
       }
   }

}

      </source>