c#之ado.net數據庫綁定

   在visual c#中ADO.NET 2.0中的新數據綁定技術介紹。 數據庫

將bindingSource1綁定到數據,將TextBox控件綁定到bindingSource1。若要執行此操做,可將下面的代碼粘貼到窗體中,並從窗體的構造函數調用LoadData或調用 Load事件處理方法。 c#

 
  1. private void LoadData()  
  2. {  
  3.     //設置XML  
  4.     string xml = @"<US><states>" 
  5.         + @"<state><name>Washington</name><capital> Olympia</capital></state>" 
  6.         + @"<state><name>Oregon</name><capital>Salem </capital></state>" 
  7.         + @"<state><name>California</name><capital> Sacramento</capital>  
  8. </state>"  
  9.         + @"<state><name>Nevada</name><capital>Carson  City</capital></state>" 
  10.         + @"</states></US>";  
  11.  
  12.     //將XML數據從String類型轉換爲Bytes類型並加載到流中  
  13.     byte[] xmlBytes = Encoding.UTF8.GetBytes(xml);  
  14.     MemoryStream stream = new MemoryStream(xmlBytes, false);  
  15.  
  16.     // Create a DataSet and load the xml into it.  
  17.     DataSet set = new DataSet();  
  18.     set.ReadXml(stream);  
  19.  
  20.     // 設置DataSet的 DataSourc和DataMember屬性  
  21.     bindingSource1.DataSource = set;  
  22.     bindingSource1.DataMember = "state";  
  23.  
  24.     textBox1.DataBindings.Add("Text", bindingSource1, "name");  
  25.     textBox2.DataBindings.Add("Text", bindingSource1, "capital");  

 將名爲bindingNavigator1的BindingNavigator控件添加到窗體。 api

 將bindingNavigator1的BindingSource屬性設置爲bindingSource1。 服務器

(2)使用Windows窗體BindingNavigator控件瀏覽數據集 函數

生成數據驅動的應用程序時,常常須要向用戶顯示數據集合。BindingNavigator控件與BindingSource組件一塊兒爲滾動集合並按順序顯示其中的項提供方便的可擴展解決方案。 工具

實例  使用 BindingNavigator。 this

下面演示如何使用BindingNavigator控件滾動數據庫查詢結果。結果集包含在DataSet中,它使用BindingSource組件綁定到TextBox控件。 spa

 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Data.SqlClient;  
  7. using System.Windows.Forms;  
  8.  
  9. public class Form1 : Form  
  10. {  
  11.     //建立一個BindingNavigator對象  
  12.     BindingNavigator customersBindingNavigator = new BindingNavigator();  
  13.  
  14.     //建立一個BindingSource 對象,以提供綁定數據  
  15.     BindingSource customersBindingSource = new BindingSource();  
  16.  
  17.     //建立一個TextBox用來顯示CompanyName的數據  
  18.     TextBox companyNameTextBox = new TextBox();  
  19.  
  20.     public Form1()  
  21.     {  
  22.         //將BindingSource綁定到BindingNavigator上  
  23.         this.customersBindingNavigator.BindingSource =  
  24. this.customersBindingSource;  
  25.         this.customersBindingNavigator.Dock = DockStyle.Top;  
  26.         this.Controls.Add(this.customersBindingNavigator);  
  27.  
  28.         //設置TextBox控件顯示CompanyName  
  29.         this.companyNameTextBox.Dock = DockStyle.Bottom;  
  30.         this.Controls.Add(this.companyNameTextBox);  
  31.  
  32.         //設置窗口的大小  
  33.         this.Size = new Size(800, 200);  
  34.         this.Load += new EventHandler(Form1_Load);  
  35.     }  
  36.  
  37.     void Form1_Load(object sender, EventArgs e)  
  38.     {  
  39.         //打開數據庫鏈接  
  40.         //Replace the value of connectString with a valid  
  41.         //設置鏈接字符串鏈接到Northwind數據庫  
  42.         string connectString =  
  43.             "Integrated Security=SSPI;Persist Security Info=False;" +  
  44.             "Initial Catalog=Northwind;Data Source=localhost";  
  45.         SqlConnection connection = new SqlConnection();  
  46.         connection.ConnectionString = connectString;  
  47.         connection.Open();  
  48.  
  49.         //執行查詢命令  
  50.         SqlCommand command = new SqlCommand(  
  51.             "Select * From Customers", connection);  
  52.         SqlDataReader reader = command.ExecuteReader(  
  53.             CommandBehavior.CloseConnection);  
  54.  
  55.         //向DataSet加載查詢結果  
  56.         DataSet ds = new DataSet("Northwind Customers");  
  57.         ds.Load(  
  58.             reader,  
  59.             LoadOption.OverwriteChanges,  
  60.             new string[] { "Customers" });  
  61.  
  62.         //將DataSet綁定到BindingSource  
  63.         this.customersBindingSource.DataSource = ds;  
  64.  
  65.         //將CompanyName字段綁定到TextBox控件  
  66.         this.companyNameTextBox.DataBindings.Add(  
  67.             new Binding("Text",  
  68.             this.customersBindingSource,  
  69.             "CompanyName",  
  70.             true));  
  71.     }  

3.DataGridView 控件 code

在ADO.NET 2.0中DataGridView控件取代了DataGrid控件。DataGridView控件提供了DataGrid控件中沒有的許多基本功能和高級功能。此外,DataGridView控件的結構使得它比DataGrid控件更容易擴展和自定義。表10-4列出了DataGridView控件相對於DataGrid控件新增的幾個主要功能。 orm

表10-4  DataGridView的主要功能

DataGridView控件功能

    

多種列類型

DataGrid控件相比,DataGridView控件提供了

更多的內置列類型。這些列類型能知足大多數常

見方案的須要,並且比DataGrid控件中的列類型

更容易擴展或替換。有關更多信息,可參見

Windows窗體DataGridView控件中的列類型

續表

DataGridView控件功能

    

多種數據顯示方式

DataGrid控件僅限於顯示外部數據源的數據;

DataGridView控件可顯示存儲在控件中的未綁

定數據、來自綁定數據源的數據或者同時顯示綁定

數據和未綁定數據,也能夠在DataGridView控件中

實現虛擬模式以提供自定義數據管理。有關更多信息,

可參見Windows窗體DataGridView控件中的數據顯示模式

用於自定義數據顯示的多種方式

DataGridView控件提供了許多屬性和事件,可使用

它們指定數據的格式設置方式和顯示方式。例如,

能夠根據單元格、行和列中包含的數據更改其外觀,

或者將一種數據類型的數據替換爲另外一種類型的等效

數據。有關更多信息,可參見Windows窗體

DataGridView控件中的數據格式設置

用於更改單元格、行、列、

標頭外觀和行爲的多個選項

利用DataGridView控件可以以多種方式使用各個

網格組件。例如,能夠凍結行和列以阻止其滾動;

隱藏行、列和表頭;更改調整行、列和表頭大小

的方式;更改用戶進行選擇的方式;以及

爲各個單元格、行和列提供工具提示和快捷菜單

不過,在ADO.NET 2.0中仍然保留了DataGrid控件,以備向後兼容和特殊須要,但幾乎全部目的都應使用DataGridView控件來實現。

【提示】DataGridView不能顯示主/從兩個表。

DataGrid控件中提供而DataGridView控件中未提供的惟一功能是在一個控件中分層顯示兩個相關表中的信息。必須使用兩個DataGridView控件顯示具備主/從(詳細信息)關係的兩個表中的信息。

ADO.NET是一種將基於Microsoft .NET的Windows應用程序以及Web應用程序鏈接到數據庫或XML文件等的數據訪問技術。它不一樣於ADO技術,主要在於它能夠在非鏈接環境下訪問數據庫,支持對XML的無縫訪問。DataSet是ADO.NET中的核心技術,它的出現使得訪問數據庫變得很是方便。DataSet能夠當作是應用程序所在計算機內存中的數據庫,應用程序能夠經過DataSet對數據庫進行非鏈接模式的訪問,即經過DataAdapter將數據從數據庫服務器中取出並填充到DataSet中,應用程序訪問和操做DataSet中的數據,這一切就像是訪問本地的數據庫同樣,而後再經過DataAdapter將數據更新傳送回數據庫服務器。

相關文章
相關標籤/搜索