ADO.Net DataTable類
DataTable
類將關係數據表示爲表格形式。ADO.NET提供了一個DataTable
類來獨立創建和使用數據表。它也可以和DataSet
一起使用。 最初,當創建DataTable
時,它沒有表模式。我們可以通過向表中添加列和約束來創建表模式。在定義表模式之後,可以向表中添加行。
在創建DataTable
之前,必須包含System.Data
名稱空間。
DataTable的簽名
public class DataTable : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource,
System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable,
System.Xml.Serialization.IXmlSerializable
DataTable構造函數
下表列出了DataTable
類的構造函數。
編號
構造函數
描述
1
DataTable()
它用於初始化沒有參數的DataTable
類的新實例。
2
DataTable(String)
它用於使用指定的表名初始化DataTable
類的新實例。
3
DataTable(SerializationInfo, StreamingContext)
它用於使用SerializationInfo
和StreamingContext
初始化DataTable
類的新實例。
4
DataTable(String, String)
它用於使用指定的表名和名稱空間初始化DataTable
類的新實例。
DataTable屬性
下表列出了DataTable
類的屬性。
編號
屬性
描述
1
Columns
它用於獲取屬於此表的列的集合。
2
Constraints
它被用來獲取由這個表維護的約束的集合。
3
DataSet
它用於獲取此表所屬的DataSet
。
4
DefaultView
它用於獲取可能包含過濾視圖的表的自定義視圖。
5
HasErrors
它用於獲取指示DataSet
表中的任何行中是否存在錯誤的值。
6
MinimumCapacity
它用於獲取或設置此表的初始起始大小。
7
PrimaryKey
它用於獲取或設置一個用作數據表主鍵的列數組。
8
Rows
它用於獲取屬於此表的行的集合。
9
TableName
它用於獲取或設置DataTable
的名稱。
DataTable方法
下表列出了DataTable
類的方法。
編號
屬性
描述
1
AcceptChanges()
它用於提交對此表進行的所有更改。
2
Clear()
它用來清除所有數據的DataTable
。
3
Clone()
它被用來克隆DataTable
的結構。
4
Copy()
它用於複製DataTable
的結構和數據。
5
CreateDataReader()
它用於返回與此DataTable
中的數據相對應的DataTableReader
。
6
CreateInstance()
它用於創建DataTable
的新實例。
7
GetRowType()
它用於獲取行類型。
8
GetSchema()
它用來獲取表的模式。
9
ImportRow(DataRow)
它用於將DataRow
複製到DataTable
中。
10
Load(IDataReader)
它用於使用提供的IDataReader
從數據源填充DataTable
。
11
Merge(DataTable, Boolean)
它用於合併指定的DataTable
和當前的DataTable
。
12
NewRow()
它用於創建一個與表具有相同模式的新DataRow
。
13
Select()
它用於獲取所有DataRow
對象的數組。
14
WriteXml(String)
用於使用指定的文件將DataTable
的當前內容寫爲XML。
數據表示例
在下面的例子中,我們創建一個將數據填充到瀏覽器的數據表。首先創建一個Web項目:AdoNetDataTable,打開Visual Studio創建一個ASP.NET空網站項目,如下所示 -
向這個項目中添加一個新建項,在項目名稱上點擊右鍵,在彈出的菜單中選擇:添加 ->添加新項,文件的名稱爲:Default.html,如下圖所示 -
本示例包含以下文件,Default.html -
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.html.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>DataTable示例</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</form>
</body>
</html>
文件:Default.html.cs -
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add("編號");
table.Columns.Add("姓名");
table.Columns.Add("電子郵箱");
table.Rows.Add("101", "Javaer", "[email protected]");
table.Rows.Add("102", "Sam James", "[email protected]");
table.Rows.Add("103", "Subram Ruby", "[email protected]");
table.Rows.Add("104", "Ankur Python", "[email protected]");
GridView1.DataSource = table;
GridView1.DataBind();
}
}
執行上面項目,點擊菜單:調試 -> 開始執行(不調試) ,Visual Studio自動打開瀏覽器,看到結果如下所示 -