蜜桃欧美|戒汤唯未删减版|先锋影音av资源在线观看|国产精品裸体一区二区三区,这么多年电影完整版免费在线观看,卧底2020电视剧免费全集在线观看,美好事物电影完整版在线观看

主營業(yè)務(wù):網(wǎng)站制作 網(wǎng)站優(yōu)化 小程序制作 石家莊網(wǎng)站制作網(wǎng)站建設(shè)有限公司歡迎您!
石家莊閃云網(wǎng)絡(luò)科技有限公司
客服熱線15383239821
如何讓自己的網(wǎng)站更有質(zhì)量?

詳解DataTable用法

發(fā)布時間:2011/3/15 14:21:21

DataTable表示一個與內(nèi)存有關(guān)的數(shù)據(jù)表,可以使用工具欄里面的控件拖放來創(chuàng)建和使用,也可以在編寫程序過程中根據(jù)需要獨(dú)立創(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ù)表,實(shí)現(xiàn)代碼如下所示:

  1. DataTable NewTable = new DataTable(TableName); 

另外也可以通過以下方法創(chuàng)建DataTable對象:使用DataAdapter對象的Fill方法或FillSchema方法在DataSet中創(chuàng)建,這種方式都用于與數(shù)據(jù)庫相連接操作的情況下。實(shí)現(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對象的實(shí)例,并為其指定名稱“Customers”。 實(shí)現(xiàn)代碼如下所示:

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

以下代碼是將創(chuàng)建的DataTable實(shí)例Customers表添加到DataSet的Tables集合中。實(shí)現(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中添加了四列。實(shí)現(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屬性,實(shí)現(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));  <

相關(guān)新聞推薦

在線客服 : 服務(wù)熱線:15383239821 電子郵箱: 27535611@qq.com

公司地址:石家莊市新華區(qū)九中街江西大廈4062

備案號:冀ICP備2022000585號-4