1. 程式人生 > >構建布局良好的Windows程序

構建布局良好的Windows程序

mman rac mem oracl 簡單 ada 視圖 接收 對象

DataSet對象

當應用程序需要查詢數據時,可以使用DataReader對象讀取數據,DataReader每次都只能讀取一行數據到內存中,並且要一直與數據庫保持連接.而且是只讀只進型的讀取方法.給程序想再次獲得讀取過的數據帶來了麻煩.利用數據集,我們可以在斷開與數據庫連接的情況下操作數據,可以操作來自多個相同或不同數據源的數據

1.1認識DataSet對象

我們可以把數據集簡單的理解為一個臨時的數據庫,他把應用程序需要的數據臨時保存在內存中,由於這些數據都緩存在本地機器上,就不需要一直保存和數據庫的連接.當應用程序需要數據時,就直接從內存中的數據集讀取數據,也可以對數據集中的數據進行修改,然後將修改後的數據一起提交到數據庫.

數據集不直接和數據庫打交道,它和數據庫之間的相互作用都是通過.Net數據提供程序來完成的,所以數據集是獨立於任何數據庫的.

1.2創建DataSet

DateSet位於System.Data命名空間中,創建DataSet語法如下

[語法]:

DataSet 數據集對象 = new DataSet("數據集的名稱字符串");

方法中的參數是數據集的名稱,可以有,也可以沒有,如果沒有寫參數,創建的數據集的名稱默認為NewDataSet.

例如:

DataSet myDataSet = new DataSet();

DataSet myDataSet = new DataSet("MySchool");

2 DataAdapter對象

數據適配器數據庫和DataSet對象連接的橋梁

2.1認識DataAdapter對象

.NET 數據提供程序及DataAdapter類
.NET 數據提供程序連接類
SQL 數據提供程序
System.Data.SqlClient命名空間中
SqlDataAdapter
OLE DB 數據提供程序
System.Data.OleDb命名空間中
OleDbDataAdapter
ODBC 數據提供程序
System.Data.Odbc命名空間中
OdbcDataAdapter
Oracle 數據提供程序
System.Data.OracleClient命名空間中
OracleDataAdapter

DataAdapter對象的主要屬性和方法

屬性:SelectCommand 從數據庫檢索數據的Command對象

方法

Fill() 向DataSet中的表填充數據

Update 將DataSet中的數據提交到數據庫

2.2填充數據集

使用DataAdapter填充數據集需要四個步驟

(1)創建數據庫連接對象

(2)創建從數據庫查詢數據用的SQL語句

(3)利用上面創建的SQL語句和Connection對象創建DataAdapter對象

語法:

SqlDataAdapter 對象名 = new SqlDataAdapter(查詢用的SQL語句,數據庫連接);

或者

SqlDataAdqpter adapter = new SqlDataAdapter();

SqlCommand command = new SqlCommand(查詢用的SQL語句,數據庫連接);

adapter.SelectCommand = command;

(4)調用DataAdapter對象的Fill方法填充數據集

語法:

DataAdapter對象.Fill(數據集對象,"數據表名稱字符串");

Fill()方法接收一個數據表名稱的字符串參數.如果數據集中原來沒有這個數據表,調用Fill()方法後就會創建一個數據表.如果數據集中原來有這個數據表,就會把現在查出的結果繼續添加到數據表中.

經驗:

創建一個DataAdapter對象,都與Connection.Command對象有關,並且要編寫SQL語句

在不同的代碼段中,Connection對象出現的位置可能不同

3.數據綁定

數據綁定是為了在控件上顯示數據庫中存儲的數據,而將應用程序的控件與數據庫的任何列或行進行綁定的過程.VS使用DataSource屬性為我們提供了靜態和動態的數據綁定,教好的解決了這個問題,降低了代碼的復雜度

3.1ComboBox數據綁定

通過組合框實現綁定數據時,常使用的屬性為:

DataSource 獲取或設置數據源

DisplayMember 獲取或設置要為此ListContiol顯示的屬性

ValueMember 獲取或設置一個屬性,該屬性將用做ListControl中項的實際值.

4.認識DataGridView控件

數據網格視圖控件是一個很強大的控件,在DataGridView中還可以直接修改和刪除數據.

DataGridView控件能夠以表格的形式顯示數據,可以設置為只讀,也可以允許編輯數據.要想指定DataGridView顯示哪個表的數據,只需要設置他的DataSource屬性,使用一行代碼就能實現

主要屬性:

Columns 包含列的集合

DataSource DataView的數據源

ReadOnly 是否可以編輯單元格

各列的主要屬性:

DataPropertyName 綁定數據列的名稱

HeaderText 列標題文本

Visible 制定列是否可見

Frozen 指定水平滾動DataGridView時列是否移動

ReadOnly 指定單元格是否為只讀

4.使用DataGridView控件顯示數據

(1)添加控件

(2)設置DataGridView的屬性和各列的屬性

(3)篩選信息(查詢用)

(4)綁定DataGridView的數據源

4.保存對數據集的修改

(1)使用SqlCommandBuilder對象生成更新用的相關命令

[語法]:

sqlCommandBuilder Builder = new SqlCommandBuilder(已創建的DataAdaptr對象);

(2)調用DataAdapter對象的Update方法

DataAdaptre對象.Update(數據集對象,"數據表名稱字符串");

經驗:

SqlCommandBuilder只操作單個表.也就是說,創建DataAdaptr對象時.使用的SQL語句只能從一個表裏面查數據,不能進行聯合查詢.

常見錯誤:

(1)不使用sqlCommandBuilder直接調用Updata()方法

(2)利用DataGridView顯示數據集中表時,沒有為他的列設置DataPropertName屬性

構建布局良好的Windows程序