博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataTable 的用法简介
阅读量:6076 次
发布时间:2019-06-20

本文共 4690 字,大约阅读时间需要 15 分钟。

先看示例代码:

// Put the next line into the Declarations section.private System.Data.DataSet dataSet; private void MakeDataTables(){    // Run all of the functions.     MakeParentTable();    MakeChildTable();    MakeDataRelation();    BindToDataGrid();} private void MakeParentTable(){    // Create a new DataTable.    System.Data.DataTable table = new DataTable("ParentTable");    // Declare variables for DataColumn and DataRow objects.    DataColumn column;    DataRow row;     // Create new DataColumn, set DataType,     // ColumnName and add to DataTable.        column = new DataColumn();    column.DataType = System.Type.GetType("System.Int32");    column.ColumnName = "id";    column.ReadOnly = true;    column.Unique = true;    // Add the Column to the DataColumnCollection.    table.Columns.Add(column);     // Create second column.    column = new DataColumn();    column.DataType = System.Type.GetType("System.String");    column.ColumnName = "ParentItem";    column.AutoIncrement = false;    column.Caption = "ParentItem";    column.ReadOnly = false;    column.Unique = false;    // Add the column to the table.    table.Columns.Add(column);     // Make the ID column the primary key column.    DataColumn[] PrimaryKeyColumns = new DataColumn[1];    PrimaryKeyColumns[0] = table.Columns["id"];    table.PrimaryKey = PrimaryKeyColumns;     // Instantiate the DataSet variable.    dataSet = new DataSet();    // Add the new DataTable to the DataSet.    dataSet.Tables.Add(table);     // Create three new DataRow objects and add     // them to the DataTable    for (int i = 0; i<= 2; i++)    {        row = table.NewRow();        row["id"] = i;        row["ParentItem"] = "ParentItem " + i;        table.Rows.Add(row);    }} private void MakeChildTable(){    // Create a new DataTable.    DataTable table = new DataTable("childTable");    DataColumn column;    DataRow row;     // Create first column and add to the DataTable.    column = new DataColumn();    column.DataType= System.Type.GetType("System.Int32");    column.ColumnName = "ChildID";    column.AutoIncrement = true;    column.Caption = "ID";    column.ReadOnly = true;    column.Unique = true;    // Add the column to the DataColumnCollection.    table.Columns.Add(column);     // Create second column.    column = new DataColumn();    column.DataType= System.Type.GetType("System.String");    column.ColumnName = "ChildItem";    column.AutoIncrement = false;    column.Caption = "ChildItem";    column.ReadOnly = false;    column.Unique = false;    table.Columns.Add(column);     // Create third column.    column = new DataColumn();    column.DataType= System.Type.GetType("System.Int32");    column.ColumnName = "ParentID";    column.AutoIncrement = false;    column.Caption = "ParentID";    column.ReadOnly = false;    column.Unique = false;    table.Columns.Add(column);     dataSet.Tables.Add(table);    // Create three sets of DataRow objects,     // five rows each, and add to DataTable.    for(int i = 0; i <= 4; i ++)    {        row = table.NewRow();        row["childID"] = i;        row["ChildItem"] = "Item " + i;        row["ParentID"] = 0 ;        table.Rows.Add(row);    }    for(int i = 0; i <= 4; i ++)    {        row = table.NewRow();        row["childID"] = i + 5;        row["ChildItem"] = "Item " + i;        row["ParentID"] = 1 ;        table.Rows.Add(row);    }    for(int i = 0; i <= 4; i ++)    {        row = table.NewRow();        row["childID"] = i + 10;        row["ChildItem"] = "Item " + i;        row["ParentID"] = 2 ;        table.Rows.Add(row);    }} private void MakeDataRelation(){    // DataRelation requires two DataColumn     // (parent and child) and a name.    DataColumn parentColumn =         dataSet.Tables["ParentTable"].Columns["id"];    DataColumn childColumn =         dataSet.Tables["ChildTable"].Columns["ParentID"];    DataRelation relation = new         DataRelation("parent2Child", parentColumn, childColumn);    dataSet.Tables["ChildTable"].ParentRelations.Add(relation);} private void BindToDataGrid(){    // Instruct the DataGrid to bind to the DataSet, with the     // ParentTable as the topmost DataTable.    dataGrid1.SetDataBinding(dataSet,"ParentTable");}

DataTable的一些属性,如:

DataTable dt = new DataTable();

dt.Columns.Add("Name",typeof(string));

//增加一列,列名为Name

DataRow dr = dt.NewRow();

dr["Name"] = "Spring Yang";

dt.Rows.Add(dr);

//增加一行;

dt.Rows.Remove(dr);

//删除一行;

dt.Cloumns.Remove("Name");

删除一列

DataTable dtnew = dt.Copy();

dtnew 指向的是dt所指向的内存地址,给dtnew操作也是对dt操作

只有这样:

DataTable dttwo = dt.Clone();

foreach(DataRow dr in dt.Rows)

{

DataRow newdr = dttwo.NewRow();

newdr.ItemArray = dr.ItemArray;

dttwo.Rows.Add(newdr);

}

再对dttwo操作就不会修改dt了.这应该是值类型和引用类型的区别吧.

转载地址:http://fqngx.baihongyu.com/

你可能感兴趣的文章
在CentOS 6.5 上 使用redhat RDO packstack安装 openstack icehouse
查看>>
Python基本语法
查看>>
常用服务协议端口
查看>>
MYSQL分库分表总结
查看>>
网络协议复习一本通A
查看>>
路由器重置密码
查看>>
一次搞懂 Generator 函数
查看>>
MySQL数据表类型及文件结构
查看>>
set的常用用法
查看>>
以命令行方式启动instruments
查看>>
Hadoop HDFS Federation 配置
查看>>
个人简历制作工具V1.09
查看>>
trip的数据类型
查看>>
C语言常见问题分析(1)
查看>>
ubuntu14.04安装nginx+php5-fpm
查看>>
试用mysql的infobright引擎
查看>>
Select 模型简介
查看>>
WAN技术
查看>>
Linux中影响变量的命令
查看>>
记一个命令msinfo32
查看>>