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