(摘录自《C#函数实用手册》冶金工业出版社)
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DataTable testDT = new DataTable("student");
DataColumn testDC;
testDC = new DataColumn();
testDC.DataType = Type.GetType("System.Int32");
testDC.ColumnName = "ID";
testDT.Columns.Add(testDC);
testDC = new DataColumn();
testDC.DataType = Type.GetType("System.String");
testDC.ColumnName = "Name";
testDT.Columns.Add(testDC);
testDC = new DataColumn();
testDC.DataType = Type.GetType("System.String");
testDC.ColumnName = "School";
testDT.Columns.Add(testDC);
DataRow testDR = testDT.NewRow();
testDR["ID"] = 1;
testDR["Name"] = "Rose";
testDR["School"] = "SCUT";
testDT.Rows.Add(testDR);
testDR = testDT.NewRow();
testDR["ID"] = 2;
testDR["Name"] = "Coke";
testDR["School"] = "SCNU";
testDT.Rows.Add(testDR);
testDT.AcceptChanges();
Console.WriteLine("原始表的数据:");
DoPrint(testDT);
Console.WriteLine("添加数据:");
testDR = testDT.NewRow();
testDR[0] = 3;
testDR[1] = "Mike";
testDR[2] = "SCUT";
testDT.Rows.Add(testDR);
DoPrint(testDT);
Console.WriteLine("不要该添加的数据:");
testDT.RejectChanges();
DoPrint(testDT);
Console.WriteLine("添加数据:");
testDR = testDT.NewRow();
testDR[0] = 4;
testDR[1] = "Clin";
testDR[2] = "SCNU";
testDT.BeginLoadData(); // 使用BeginLoadData方法在加载数据时关闭通知、索引维护和约束
testDT.Rows.Add(testDR);
testDT.EndLoadData(); // 使用BeginLoadData方法在加载数据时打开通知、索引维护和约束
DoPrint(testDT);
DataTable testDTA = testDT.GetChanges();
Console.WriteLine("添加的数据:");
DoPrint(testDTA);
DataRow[] testDRA;
testDRA = testDT.Select(); // 使用Select方法获取DataRow对象的数组
Console.WriteLine("学生的名字:");
for (int i = 0; i < testDRA.Length; i++)
{
Console.WriteLine(testDRA[i]["Name"]);
}
Console.WriteLine("执行Reset操作!");
testDT.Reset();
DoPrint(testDT);
Console.ReadLine();
}
private static void DoPrint(DataTable dt)
{
Console.WriteLine(" " + dt.TableName + "表");
foreach (DataColumn dc in dt.Columns)
{
Console.Write(" " + dc.ColumnName + " ");
}
Console.WriteLine();
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns)
{
Console.Write(" " + dr[dc]);
}
Console.WriteLine();
}
Console.WriteLine("------------------------------/n");
}
}
}
********************************************
执行结果如下:
原始表的数据:
student表
ID Name School
1 Rose SCUT
2 Coke SCNU
------------------------------
添加数据:
student表
ID Name School
1 Rose SCUT
2 Coke SCNU
3 Mike SCUT
------------------------------
不要该添加的数据:
student表
ID Name School
1 Rose SCUT
2 Coke SCNU
------------------------------
添加数据:
student表
ID Name School
1 Rose SCUT
2 Coke SCNU
4 Clin SCNU
------------------------------
添加的数据:
student表
ID Name School
4 Clin SCNU
------------------------------
学生的名字:
Rose
Coke
Clin
执行Reset操作!
student表
------------------------------