Csharp/CSharp Tutorial/ADO.Net/DataSet

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

Creating a Strongly Typed DataSet

using System;
      using System.Data;
      using System.Data.SqlClient;
          class Program
          {
              static void Main(string[] args)
              {
                  string xsdFileName = "AdventureWorks.xsd";
                  string sqlConnectString = "Data Source=(local);Integrated security=SSPI;Initial Catalog=AdventureWorks;";
                  string sqlText = "SELECT * FROM Sales.SalesOrderHeader;SELECT * FROM Sales.SalesOrderDetail;";
                  SqlDataAdapter da = new SqlDataAdapter(sqlText, sqlConnectString);
                  da.TableMappings.Add("Table", "SalesOrderHeader");
                  da.TableMappings.Add("Table1", "SalesOrderDetail");
                  DataSet ds = new DataSet("AdventureWorks");
                  da.FillSchema(ds, SchemaType.Mapped);
                  ds.Relations.Add("SalesOrderHeader_SalesOrderDetail",
                      ds.Tables["SalesOrderHeader"].Columns["SalesOrderID"],
                      ds.Tables["SalesOrderDetail"].Columns["SalesOrderID"]);
                  ds.WriteXmlSchema(xsdFileName);
              }
          }

DataSet.DataTable count

using System;
using System.Data;
using System.Data.SqlClient;
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnectString = "Data Source=(local);Integrated security=SSPI;Initial Catalog=AdventureWorks;";
            string sqlSelect = "SELECT FirstName, LastName FROM Person.Contact";
            SqlDataAdapter da = new SqlDataAdapter(sqlSelect, sqlConnectString);
            DataTable dt = new DataTable( );
            da.Fill(dt);
            foreach (DataRow row in dt.Rows)
                Console.WriteLine("{0} {1}", row[0], row["LastName"]);

            DataSet ds = new DataSet( );
            da.Fill(ds, "Contact");
            Console.WriteLine(ds.Tables.Count);
            Console.WriteLine(ds.Tables[0].TableName);
            foreach (DataRow row in ds.Tables["Contact"].Rows)
                Console.WriteLine("{0} {1}", row[0], row[1]);
        }
    }

DataSet.DataTable name

using System;
using System.Data;
using System.Data.SqlClient;
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnectString = "Data Source=(local);Integrated security=SSPI;Initial Catalog=AdventureWorks;";
            string sqlSelect = "SELECT FirstName, LastName FROM Person.Contact";
            SqlDataAdapter da = new SqlDataAdapter(sqlSelect, sqlConnectString);
            DataTable dt = new DataTable( );
            da.Fill(dt);
            foreach (DataRow row in dt.Rows)
                Console.WriteLine("{0} {1}", row[0], row["LastName"]);

            DataSet ds = new DataSet( );
            da.Fill(ds, "Contact");
            Console.WriteLine(ds.Tables.Count);
            Console.WriteLine(ds.Tables[0].TableName);
            foreach (DataRow row in ds.Tables["Contact"].Rows)
                Console.WriteLine("{0} {1}", row[0], row[1]);
        }
    }

DataSet Merge event

using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
public class MainClass {
  public static void Main(){
    OleDbConnection conn = new OleDbConnection();
    string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Northwind.mdb";
    conn.ConnectionString = strDSN;
    conn.Open();
    string sql = "SELECT * FROM orders ";
    OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
    DataSet ds1 = new DataSet("ds1");
    da.Fill(ds1);
    sql = "SELECT * FROM Customers ";
    da = new OleDbDataAdapter(sql, conn);
    DataSet ds2 = new DataSet("ds2");
    da.Fill(ds2);
    ds1.MergeFailed += new MergeFailedEventHandler(OnMergeFailed);
    ds1.Merge(ds2);
  }
  protected static void OnMergeFailed  (object sender, MergeFailedEventArgs args)
  {
    MessageBox.Show(args.Conflict.ToString());
  }
}

DataSet Read with SqlDataAdapter

using System;
using System.Data;            
using System.Data.SqlClient;  
using System.Collections.Generic;
using System.Text;
  class Program
  {
    static void Main(string[] args)
    {
      SqlConnection thisConnection = new SqlConnection(
                @"Data Source=.\SQLEXPRESS;" +
                @"AttachDbFilename="NORTHWND.MDF";" +
                @"Integrated Security=True;Connect Timeout=30;User Instance=true");
      SqlDataAdapter thisAdapter = new SqlDataAdapter("SELECT CustomerID, ContactName FROM Customers", thisConnection);
      DataSet thisDataSet = new DataSet();
      thisAdapter.Fill(thisDataSet, "Customers");
      foreach (DataRow theRow in thisDataSet.Tables["Customers"].Rows)
      {
        Console.WriteLine(theRow["CustomerID"] + "\t" +theRow["ContactName"]);
      }
      thisConnection.Close();
    }
  }

Fill a DataSet

using System;
using System.Data;
using System.Data.SqlClient;
class MainClass
{
   static void Main(string[] args)
   {
      string connString = @"server = .\sqlexpress;integrated security = true;database = northwind";
      string sql = @"select productname,unitprice from products where unitprice < 20";
      SqlConnection conn = new SqlConnection(connString);
      try
      {
         conn.Open();
         SqlDataAdapter da = new SqlDataAdapter(sql, conn);
         DataSet ds = new DataSet();
         da.Fill(ds, "products");
         DataTable dt = ds.Tables["products"];
         foreach (DataRow row in dt.Rows) 
         {
            foreach (DataColumn col in dt.Columns)
               Console.WriteLine(row[col]);
         }
      }
      catch(Exception e)
      {
         Console.WriteLine("Error: " + e);
      }
      finally
      {
         conn.Close();
      }
   }
}

Find Rows In Data

using System;
using System.Data;
using System.Data.SqlClient;
class MainClass 
{
  public static void Main()
  {
    SqlConnection MyConnection = new SqlConnection("server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;");
    SqlDataAdapter MyDataAdapter = new SqlDataAdapter("SELECT * FROM Employee", MyConnection);
    SqlCommandBuilder MyCmd = new SqlCommandBuilder(MyDataAdapter);
    DataSet MyDataSet = new DataSet();
    MyDataAdapter.Fill(MyDataSet);
    DataColumn[] MyKey = new DataColumn[1];
    MyKey[0] = MyDataSet.Tables[0].Columns[0];
    MyDataSet.Tables[0].PrimaryKey = MyKey;
    DataRow FindMyRow = MyDataSet.Tables[0].Rows.Find(1);
  }
}

Load XML to DataSet

using System;
using System.Data;
using System.Data.SqlClient;
class MainClass
{
  static void Main(string[] args)
  {
    SqlConnection MyConnection = new SqlConnection("server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;");
    SqlDataAdapter MyAdapter = new SqlDataAdapter("SELECT * FROM Employee", MyConnection);
    DataSet MyDataSet = new DataSet();
    MyAdapter.Fill(MyDataSet, "MyTable");
    MyDataSet.WriteXml(@"c:\Sample.xml");
  }
}

Mapping Table and Column Names Between a Data Source and DataSet

using System;
using System.Data;
using System.Data.rumon;
using System.Data.SqlClient;
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnectString = "Data Source=(local);Integrated security=SSPI;Initial Catalog=AdventureWorks;";
            string sqlSelect = "SELECT TOP 5 Title, FirstName, LastName FROM Person.Contact";
            SqlDataAdapter da = new SqlDataAdapter(sqlSelect, sqlConnectString);
            DataTableMapping dtm = da.TableMappings.Add("Table", "myContact");
            dtm.ColumnMappings.Add("Title", "myTitle");
            dtm.ColumnMappings.Add("FirstName", "myFirstName");
            dtm.ColumnMappings.Add("LastName", "myLastName");
            DataSet ds = new DataSet();
            da.Fill(ds);
            Console.WriteLine("DataTable name = {0}",ds.Tables[0].TableName);
            foreach(DataColumn col in ds.Tables["myContact"].Columns)
            {
                Console.WriteLine(col.Ordinal);
                Console.WriteLine(col.ColumnName);
            }
            foreach(DataRow row in ds.Tables["myContact"].Rows)
            {
                Console.WriteLine(
                    "Title = {0}, FirstName = {1}, LastName = {2}",
                    row["myTitle"], row["myFirstName"],
                    row["myLastName"]);
            }
        }
    }

Merge two DataSet

using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
public class MainClass {
  public static void Main(){
    OleDbConnection conn = new OleDbConnection();
    string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Northwind.mdb";
    conn.ConnectionString = strDSN;
    conn.Open();
    string sql = "SELECT * FROM orders ";
    OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
    DataSet ds1 = new DataSet("ds1");
    da.Fill(ds1);
    sql = "SELECT * FROM Customers ";
    da = new OleDbDataAdapter(sql, conn);
    DataSet ds2 = new DataSet("ds2");
    da.Fill(ds2);
    ds1.MergeFailed += new MergeFailedEventHandler(OnMergeFailed);
    ds1.Merge(ds2);
  }
  protected static void OnMergeFailed  (object sender, MergeFailedEventArgs args)
  {
    MessageBox.Show(args.Conflict.ToString());
  }
}

Multitabled DataSet App

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;

  public class MainForm : Form
  {
    private DataSet yourDBDS = new DataSet("YourDB");
    private SqlCommandBuilder sqlCBInventory;
    private SqlCommandBuilder sqlCBCustomers;
    private SqlCommandBuilder sqlCBOrders;
    private SqlDataAdapter invTableAdapter;
    private SqlDataAdapter custTableAdapter;
    private SqlDataAdapter ordersTableAdapter;
    private string cnStr = "SqlProvider";
    public MainForm()
    {
      InitializeComponent();
      
      invTableAdapter = new SqlDataAdapter("Select * from Inventory", cnStr);
      custTableAdapter = new SqlDataAdapter("Select * from Customers", cnStr);
      ordersTableAdapter = new SqlDataAdapter("Select * from Orders", cnStr);
      sqlCBInventory = new SqlCommandBuilder(invTableAdapter);
      sqlCBOrders = new SqlCommandBuilder(ordersTableAdapter);
      sqlCBCustomers = new SqlCommandBuilder(custTableAdapter);
      invTableAdapter.Fill(yourDBDS, "Inventory");
      custTableAdapter.Fill(yourDBDS, "Customers");
      ordersTableAdapter.Fill(yourDBDS, "Orders");
      BuildTableRelationship();
      dataGridViewInventory.DataSource = yourDBDS.Tables["Inventory"];
      dataGridViewCustomers.DataSource = yourDBDS.Tables["Customers"];
      dataGridViewOrders.DataSource = yourDBDS.Tables["Orders"];
    }
    private void BuildTableRelationship()
    {
      DataRelation dr = new DataRelation("CustomerOrder",yourDBDS.Tables["Customers"].Columns["CustID"],yourDBDS.Tables["Orders"].Columns["CustID"]);
      yourDBDS.Relations.Add(dr);
      dr = new DataRelation("InventoryOrder",yourDBDS.Tables["Inventory"].Columns["CarID"],yourDBDS.Tables["Orders"].Columns["CarID"]);
      yourDBDS.Relations.Add(dr);
    }
    private void btnUpdate_Click(object sender, EventArgs e)
    {
      try
      {
        invTableAdapter.Update(yourDBDS, "Inventory");
        custTableAdapter.Update(yourDBDS, "Customers");
        ordersTableAdapter.Update(yourDBDS, "Orders");
      }
      catch (Exception ex)
      {
        MessageBox.Show(ex.Message);
      }
    }
    private void btnGetOrderInfo_Click(object sender, System.EventArgs e)
    {
      string strOrderInfo = string.Empty;
      DataRow[] drsCust = null;
      DataRow[] drsOrder = null;
      int custID = int.Parse(this.txtCustID.Text);
      drsCust = yourDBDS.Tables["Customers"].Select(string.Format("CustID = {0}", custID));
      strOrderInfo += string.Format("Customer {0}: {1} {2}\n", 
        drsCust[0]["CustID"].ToString(),
        drsCust[0]["FirstName"].ToString().Trim(),
        drsCust[0]["LastName"].ToString().Trim());
      drsOrder = drsCust[0].GetChildRows(yourDBDS.Relations["CustomerOrder"]);
      foreach (DataRow r in drsOrder)
        strOrderInfo += string.Format("Order Number: {0}\n", r["OrderID"]);
      DataRow[] drsInv = drsOrder[0].GetParentRows(yourDBDS.Relations["InventoryOrder"]);
      foreach (DataRow r in drsInv)
      {
        strOrderInfo += r["Make"];
        strOrderInfo += r["Color"];
        strOrderInfo += r["PetName"];
      }
      MessageBox.Show(strOrderInfo, "Order Details");
    }
        private void InitializeComponent()
        {
          this.dataGridViewInventory = new System.Windows.Forms.DataGridView();
          this.label1 = new System.Windows.Forms.Label();
          this.label2 = new System.Windows.Forms.Label();
          this.dataGridViewCustomers = new System.Windows.Forms.DataGridView();
          this.label3 = new System.Windows.Forms.Label();
          this.dataGridViewOrders = new System.Windows.Forms.DataGridView();
          this.btnUpdateDatabase = new System.Windows.Forms.Button();
          this.btnGetOrderInfo = new System.Windows.Forms.Button();
          this.txtCustID = new System.Windows.Forms.TextBox();
          this.label4 = new System.Windows.Forms.Label();
          this.groupBox1 = new System.Windows.Forms.GroupBox();
          ((System.ruponentModel.ISupportInitialize)(this.dataGridViewInventory)).BeginInit();
          ((System.ruponentModel.ISupportInitialize)(this.dataGridViewCustomers)).BeginInit();
          ((System.ruponentModel.ISupportInitialize)(this.dataGridViewOrders)).BeginInit();
          this.groupBox1.SuspendLayout();
          this.SuspendLayout();
          // 
          // dataGridViewInventory
          // 
          this.dataGridViewInventory.Location = new System.Drawing.Point(12, 34);
          this.dataGridViewInventory.Name = "dataGridViewInventory";
          this.dataGridViewInventory.Size = new System.Drawing.Size(509, 82);
          this.dataGridViewInventory.TabIndex = 0;
          this.dataGridViewInventory.Text = "dataGridView1";
          // 
          // label1
          // 
          this.label1.AutoSize = true;
          this.label1.Location = new System.Drawing.Point(11, 18);
          this.label1.Name = "label1";
          this.label1.Size = new System.Drawing.Size(88, 13);
          this.label1.TabIndex = 1;
          this.label1.Text = "Current Inventory";
          // 
          // label2
          // 
          this.label2.AutoSize = true;
          this.label2.Location = new System.Drawing.Point(12, 126);
          this.label2.Name = "label2";
          this.label2.Size = new System.Drawing.Size(93, 13);
          this.label2.TabIndex = 3;
          this.label2.Text = "Current Customers";
          // 
          // dataGridViewCustomers
          // 
          this.dataGridViewCustomers.Location = new System.Drawing.Point(13, 142);
          this.dataGridViewCustomers.Name = "dataGridViewCustomers";
          this.dataGridViewCustomers.Size = new System.Drawing.Size(509, 90);
          this.dataGridViewCustomers.TabIndex = 2;
          this.dataGridViewCustomers.Text = "dataGridView2";
          // 
          // label3
          // 
          this.label3.AutoSize = true;
          this.label3.Location = new System.Drawing.Point(12, 244);
          this.label3.Name = "label3";
          this.label3.Size = new System.Drawing.Size(75, 13);
          this.label3.TabIndex = 5;
          this.label3.Text = "Current Orders";
          // 
          // dataGridViewOrders
          // 
          this.dataGridViewOrders.Location = new System.Drawing.Point(13, 260);
          this.dataGridViewOrders.Name = "dataGridViewOrders";
          this.dataGridViewOrders.Size = new System.Drawing.Size(509, 90);
          this.dataGridViewOrders.TabIndex = 4;
          this.dataGridViewOrders.Text = "dataGridView3";
          // 
          // btnUpdateDatabase
          // 
          this.btnUpdateDatabase.Location = new System.Drawing.Point(407, 368);
          this.btnUpdateDatabase.Name = "btnUpdateDatabase";
          this.btnUpdateDatabase.Size = new System.Drawing.Size(114, 23);
          this.btnUpdateDatabase.TabIndex = 6;
          this.btnUpdateDatabase.Text = "Update Database";
          this.btnUpdateDatabase.Click += new System.EventHandler(this.btnUpdate_Click);
          // 
          // btnGetOrderInfo
          // 
          this.btnGetOrderInfo.Location = new System.Drawing.Point(84, 71);
          this.btnGetOrderInfo.Name = "btnGetOrderInfo";
          this.btnGetOrderInfo.Size = new System.Drawing.Size(110, 23);
          this.btnGetOrderInfo.TabIndex = 7;
          this.btnGetOrderInfo.Text = "Get Order Details";
          this.btnGetOrderInfo.Click += new System.EventHandler(this.btnGetOrderInfo_Click);
          // 
          // txtCustID
          // 
          this.txtCustID.Location = new System.Drawing.Point(84, 29);
          this.txtCustID.Name = "txtCustID";
          this.txtCustID.Size = new System.Drawing.Size(110, 20);
          this.txtCustID.TabIndex = 8;
          // 
          // label4
          // 
          this.label4.AutoSize = true;
          this.label4.Location = new System.Drawing.Point(10, 29);
          this.label4.Name = "label4";
          this.label4.Size = new System.Drawing.Size(68, 13);
          this.label4.TabIndex = 9;
          this.label4.Text = "Customer ID:";
          // 
          // groupBox1
          // 
          this.groupBox1.Controls.Add(this.btnGetOrderInfo);
          this.groupBox1.Controls.Add(this.label4);
          this.groupBox1.Controls.Add(this.txtCustID);
          this.groupBox1.Location = new System.Drawing.Point(15, 368);
          this.groupBox1.Name = "groupBox1";
          this.groupBox1.Size = new System.Drawing.Size(200, 100);
          this.groupBox1.TabIndex = 10;
          this.groupBox1.TabStop = false;
          this.groupBox1.Text = "Lookup Customer Order";
          // 
          // MainForm
          // 
          this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
          this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
          this.ClientSize = new System.Drawing.Size(534, 480);
          this.Controls.Add(this.groupBox1);
          this.Controls.Add(this.btnUpdateDatabase);
          this.Controls.Add(this.label3);
          this.Controls.Add(this.dataGridViewOrders);
          this.Controls.Add(this.label2);
          this.Controls.Add(this.dataGridViewCustomers);
          this.Controls.Add(this.label1);
          this.Controls.Add(this.dataGridViewInventory);
          this.Name = "MainForm";
          this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
          this.Text = "YourDB Database Manipulator";
          ((System.ruponentModel.ISupportInitialize)(this.dataGridViewInventory)).EndInit();
          ((System.ruponentModel.ISupportInitialize)(this.dataGridViewCustomers)).EndInit();
          ((System.ruponentModel.ISupportInitialize)(this.dataGridViewOrders)).EndInit();
          this.groupBox1.ResumeLayout(false);
          this.groupBox1.PerformLayout();
          this.ResumeLayout(false);
          this.PerformLayout();
        }
        private System.Windows.Forms.DataGridView dataGridViewInventory;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.DataGridView dataGridViewCustomers;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.DataGridView dataGridViewOrders;
        private System.Windows.Forms.Button btnUpdateDatabase;
        private System.Windows.Forms.Button btnGetOrderInfo;
        private System.Windows.Forms.TextBox txtCustID;
      private System.Windows.Forms.Label label4;
      private System.Windows.Forms.GroupBox groupBox1;
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new MainForm());
        }
    }

Navigating Between Parent and Child Tables in an Untyped DataSet

using System;
using System.Data;
using System.Data.SqlClient;
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnectString = "Data Source=(local);Integrated security=SSPI;Initial Catalog=AdventureWorks;";
            string sqlSelect = @"SELECT * FROM Sales.SalesOrderHeader;SELECT * FROM Sales.SalesOrderDetail;";
            DataSet ds = new DataSet( );
            SqlDataAdapter da;
            da = new SqlDataAdapter(sqlSelect, sqlConnectString);
            da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            da.TableMappings.Add("Table", "SalesOrderHeader");
            da.TableMappings.Add("Table1", "SalesOrderDetail");
            da.Fill(ds);
            DataRelation dr = new DataRelation("SalesOrderHeader_SalesOrderDetail",
                ds.Tables["SalesOrderHeader"].Columns["SalesOrderID"],
                ds.Tables["SalesOrderDetail"].Columns["SalesOrderID"]);
            ds.Relations.Add(dr);
            for (int i = 0; i < 2; i++){
                DataRow rowHeader = ds.Tables["SalesOrderHeader"].Rows[i];
                Console.WriteLine("HEADER: OrderID = {0}, CustomerID = {1}",rowHeader["SalesOrderID"],rowHeader["CustomerID"]);
                foreach (DataRow rowDetail in rowHeader.GetChildRows(dr))
                {
                    Console.WriteLine(rowDetail["SalesOrderID"]);
                    Console.WriteLine(rowDetail["SalesOrderDetailID"]);
                    Console.WriteLine(rowDetail["LineTotal"]);
                    Console.WriteLine(rowDetail.GetParentRow(dr)["CustomerID"]);
                }
            }
        }
    }

Read schema and reload data with DataSet

using System;
using System.Data;
using System.Data.SqlClient;
public class SaveDataSet
{
    private static string connectionString = "Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI";
    public static void Main() 
    {
        string SQL = "SELECT CategoryID, CategoryName,Description FROM Categories";
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand com = new SqlCommand(SQL, con);
        SqlDataAdapter adapter = new SqlDataAdapter(com);
        DataSet ds = new DataSet("Nortwind");
        con.Open();
        adapter.FillSchema(ds, SchemaType.Mapped, "Categories");
        adapter.Fill(ds, "Categories");
        con.Close();
        ds.WriteXmlSchema("mydata.xsd");
        ds.WriteXml("mydata.xml");
        ds.Reset();

        ds.ReadXmlSchema("mydata.xsd");
        ds.ReadXml("mydata.xml");
        Console.WriteLine(ds.GetXml());
    }
}

Retrieving Schema and Constraints for a DataSet

using System;
using System.Data;
using System.Data.SqlClient;
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnectString = "Data Source=(local);" +
                "Integrated security=SSPI;Initial Catalog=AdventureWorks;";
            string sqlSelect = "SELECT ContactID,FirstName, LastName FROM Person.Contact";
            SqlDataAdapter da = new SqlDataAdapter(sqlSelect, sqlConnectString);
            DataSet ds = new DataSet( );
            da.Fill(ds, "Contact");
            Console.WriteLine("GetXmlSchema( ) = {0}", ds.GetXmlSchema( ));
            DataSet dsSchema = new DataSet( );
            da.FillSchema(dsSchema, SchemaType.Source, "Person.Contact");
            da.Fill(dsSchema, "Contact");
            Console.WriteLine(dsSchema.Tables.Count);
            Console.WriteLine("GetXmlSchema( ) = {0}", dsSchema.GetXmlSchema( ));
        }
    }

Simple Query Dataset

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
class MainClass
{
  [STAThread]
  static void Main(string[] args)
  {
    DataSet dset = new DataSet();
    string cstr = "server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;";
    using ( SqlConnection conn = new SqlConnection( cstr ) )
    {
      conn.Open();
      SqlDataAdapter da = new SqlDataAdapter( "select * from Employee", conn );
      da.Fill( dset, "Employee" );
    }
    foreach( DataRow dr in dset.Tables[ "Employee" ].Rows )
    {
      System.Console.WriteLine( "{0}", dr[ "firstName" ] );
    }
  }
}