演示DataRowCollection类的使用

(摘录自《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;
            DataColumn[] keys = new DataColumn[1];
            testDC = new DataColumn();
            testDC.DataType = Type.GetType("System.Int32");
            testDC.ColumnName = "ID";
            keys[0] = testDC;
            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);

            DataRowCollection testDRC;
            testDRC = testDT.Rows;
           
            testDR = testDT.NewRow();
            testDR["ID"] = 3;
            testDR["Name"] = "Mike";
            testDR["School"] = "SCUT";
            testDT.Rows.Add(testDR);

            DoPrint(testDT);

            testDT.PrimaryKey = keys;
            Console.WriteLine("是否有ID为1的记录?" + testDRC.Contains("1"));
            Console.WriteLine("是否有ID为5的记录?" + testDRC.Contains("5"));
            testDR = testDRC.Find("2");
            Console.WriteLine("ID为2的记录:");
            foreach (DataColumn dc in testDT.Columns)
            {
                Console.Write(testDR[dc] + "  ");
            }
            Console.WriteLine();
            Console.WriteLine("插入前表的数据:");
            DoPrint(testDT);
            Console.WriteLine("插入后表的数据:");
            testDR = testDT.NewRow();
            testDR[0] = 8;
            testDR[1] = "Nick";
            testDR[2] = "ZSU";
            testDRC.InsertAt(testDR, 1);
            DoPrint(testDT);

            Console.WriteLine("删除第一行记录:");
            testDRC.RemoveAt(0);
            DoPrint(testDT);
            Console.WriteLine("删除所有记录:");
            testDRC.Clear();
            DoPrint(testDT);
        }

        private static void DoPrint(DataTable tempDT)
        {
            Console.WriteLine("    " + tempDT.TableName + "表数据:");
            foreach (DataColumn dc in tempDT.Columns)
            {
                Console.Write(dc.ColumnName + "   ");
            }
            Console.WriteLine();
            foreach (DataRow dr in tempDT.Rows)
            {
                foreach (DataColumn dc in tempDT.Columns)
                {
                    Console.Write(dr[dc] + "    ");
                }
                Console.WriteLine();
            }
            Console.WriteLine("------------------------------/n");
        }
    }
}

 

 

*************************************************

执行结果:

    student表数据:
ID   Name   School  

1    Rose    SCUT   

2    Coke    SCNU   

3    Mike    SCUT   

------------------------------

是否有ID为1的记录?True
是否有ID为5的记录?False
ID为2的记录:
2  Coke  SCNU 

插入前表的数据:
    student表数据:
ID   Name   School  

1    Rose    SCUT   

2    Coke    SCNU   

3    Mike    SCUT   

------------------------------

插入后表的数据:
    student表数据:
ID   Name   School  

1    Rose    SCUT   

8    Nick    ZSU   

2    Coke    SCNU   

3    Mike    SCUT   

------------------------------

删除第一行记录:
    student表数据:
ID   Name   School  

8    Nick    ZSU   

2    Coke    SCNU   

3    Mike    SCUT   

------------------------------

删除所有记录:
    student表数据:
ID   Name   School  

------------------------------ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值