服務熱線
153 8323 9821
DataTable表示一個與內存有關的數據表,可以使用工具欄里面的控件拖放來創建和使用,也可以在編寫程序過程中根據需要獨立創建和使用,最常見的情況是作為DataSet的成員使用,在這種情況下就需要用在編程過程中根據需要動態創建數據表。 1 代碼創建DataTable數據表 另外也可以通過以下方法創建DataTable對象:使用DataAdapter對象的Fill方法或FillSchema方法在DataSet中創建,這種方式都用于與數據庫相連接操作的情況下。實現代碼如下所示: 注意:將一個DataTable作為成員添加到一個DataSet的Tables集合中后,不能再將其添加到任何其他DataSet的表集合中。 以下代碼是將創建的DataTable實例Customers表添加到DataSet的Tables集合中。實現代碼如下所示: 或者 2 用編程方式添加DataTable列 代碼說明: CustID,CustLName,CustFName,Purchases:數據表Customers中的列名。 3 設置DataTable數據表的主鍵
通過添加對象的方式直接在DataSet中創建數據表,可以通過使用Add方法將DataTable添加到DataSet中,這種是使用控件的可視化添加DataTable的操作,那么在代碼中怎么來創建DataTable數據表呢?
在程序中創建DataTable對象可以使用相應的DataTable構造函數。創建一個表名為TableName的數據表,實現代碼如下所示:
使用DataTable構造函數初次創建DataTable時,是沒有架構(即結構,沒有列)的。沒有架構的DataTable數據表示沒有辦法使用的,因此要在使用這種DataTable數據表之前要定義表的架構,必須創建DataColumn對象并將其添加到表的Columns集合中。如何使用代碼創建Columns列,將在本章后面幾節中講到。
創建DataTable時,不需要為TableName屬性提供值,可以在其他時間指定該屬性,或者將其保留為空,這些都不影響DataTable的使用。應該注意的是在將一個沒有TableName值的表添加到DataSet中時,該表會得到一個從“Table”(表示Table0)開始遞增的默認名稱TableN。
以下示例創建DataTable對象的實例,并為其指定名稱“Customers”。 實現代碼如下所示:
前面已經學過使用代碼創建DataTable,但是使用DataTable構造函數初次創建 DataTable時,是沒有架構(即結構,沒有列)的。要定義表的架構,必須創建DataColumn 對象并將其添加到表的Columns集合中。也可以為表定義主鍵列,并且可以創建Constraint約束對象并將其添加到表的Constraints約束集合中。
DataColumn類型表示了DataTable上的一列。總的來說,綁定到某個DataTable的所有DataColumn類型的集合就表示一個表。
DataTable包含了由表的Columns屬性引用的DataColumn對象的集合。這個列的集合與任何約束一起定義表的架構(即結構)。
通過使用DataColumn構造函數,或者通過調用表的Columns屬性的Add方法,可在表內創建DataColumn對象。Add方法將接受可選的ColumnName、DataType參數,并將創建新的DataColumn作為集合的成員。它還會接受現有的DataColumn對象并會將其添加到集合中,并會根據請求返回對所添加的DataColumn的引用。
以下示例向DataTable中添加了四列。實現代碼如下所示:
數據庫開發的一個通常規則就是表至少得有一個列作為主鍵。主鍵約束用于惟一標識給定表中的一條記錄(行)。假設現在需要新建一個DataColumn列來表示EmpID字段并且要將這個列將作為表的主鍵,它必須有AllowDBNull和Unique屬性,實現代碼如下所示: