同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 詳解DataTable用法

詳解DataTable用法

來源: | 時間:2011/3/15 14:21:21 |

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ù)表
通過添加對象的方式直接在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)代碼如下所示:

  1. DataTable NewTable = new DataTable(TableName); 

另外也可以通過以下方法創(chuàng)建DataTable對象:使用DataAdapter對象的Fill方法或FillSchema方法在DataSet中創(chuàng)建,這種方式都用于與數(shù)據(jù)庫相連接操作的情況下。實現(xiàn)代碼如下所示:

  1. //數(shù)據(jù)庫聯(lián)接字符串  
  2. string connectionString =  
  3. "Data Source=local;Initial Catalog=Northwind;Integrated Security=True;UserID=sa;Password=";  
  4. //sql語句查詢  
  5. string commandString = "Select * from Customers";  
  6. // 創(chuàng)建SqlDataAdapter對象,并執(zhí)行sql命令  
  7. SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, connectionString);  
  8. //創(chuàng)建數(shù)據(jù)集dataSet  
  9. DataSet dataSet = new DataSet();  
  10. //把數(shù)據(jù)表添加到數(shù)據(jù)集中  
  11. DataTable dataTable = dataSet.Tables("Customers");  
  12. //將數(shù)據(jù)填充到數(shù)據(jù)集中  
  13. dataAdapter.Fill(dataSet,"Customers"); 

注意:將一個DataTable作為成員添加到一個DataSet的Tables集合中后,不能再將其添加到任何其他DataSet的表集合中。
使用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)代碼如下所示:

  1. DataTable workTable = new DataTable("Customers"); 

以下代碼是將創(chuàng)建的DataTable實例Customers表添加到DataSet的Tables集合中。實現(xiàn)代碼如下所示:

  1. DataSet customers = new DataSet();  
  2. DataTable customersTable = customers.Tables.Add("CustomersTable"); 

或者

  1. DataSet customers = new DataSet();  
  2. DataTable customersTable = new DataTable(“Customers”)  
  3. customers.Tables.Add(Customers); 

2 用編程方式添加DataTable列
前面已經(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)代碼如下所示:

  1. DataTable workTable = new DataTable("Customers");  
  2. DataColumn workCol = workTable.Columns.Add("CustID");  
  3. workTable.Columns.Add("CustLName");  
  4. workTable.Columns.Add("CustFName");  
  5. workTable.Columns.Add("Purchases"); 

代碼說明:

CustID,CustLName,CustFName,Purchases:數(shù)據(jù)表Customers中的列名。

3 設(shè)置DataTable數(shù)據(jù)表的主鍵
數(shù)據(jù)庫開發(fā)的一個通常規(guī)則就是表至少得有一個列作為主鍵。主鍵約束用于惟一標(biāo)識給定表中的一條記錄(行)。假設(shè)現(xiàn)在需要新建一個DataColumn列來表示EmpID字段并且要將這個列將作為表的主鍵,它必須有AllowDBNull和Unique屬性,實現(xiàn)代碼如下所示:

  1. DataTable workTable = new DataTable("Customers");  
  2. DataColumn workCol = workTable.Columns.Add("CustID"typeof(Int32));  
  3. workCol.AllowDBNull = false;  
  4. workCol.Unique = true;  
  5. workTable.Columns.Add("CustLName"typeof(String));  <

服務(wù)熱線

153 8323 9821

功能和特性

價格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號