C# DataTable和DataRelation

2021-01-22 08:13

阅读:393

标签:blog   names   oid   内容   i++   info   send   声明   好的   

技术图片

form2.cs

技术图片
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace DataAdapter
{
    public partial class Form2 : Form
    {
        private DataSet ds = new DataSet();

        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            MakeParentTable();
            MakeChildTable();
            MakeDataRelation();
            BindToDataGrid();

        }

        /// 
        /// 创建父表
        /// 
        private void MakeParentTable()
        {
            //实例化一个表的对象,并命名为ParentTable
            DataTable table = new DataTable("ParentTable");
            //声明列和行的对象
            DataColumn column;
            DataRow row;

            //创建新的列,上面是声明,下面才是实例化
            column = new DataColumn();
            //列的数据类型
            column.DataType = System.Type.GetType("System.Int32");
            //列的名称
            column.ColumnName = "id";
            //列的读写方式--只读
            column.ReadOnly = true;
            //指定列的内容受唯一限制(内容不能重复)
            column.Unique = true;
            //将设置好的列对象添加到DataTable中
            table.Columns.Add(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;
            table.Columns.Add(column);

            ////为表设置主键字段,首先选出要作为主键的字段添加到一个DataColumn集合中
            ////这也侧面说明DataTable里面也可以有多个主键字段
            DataColumn[] PrimaryKeyColumns = new DataColumn[1];
            PrimaryKeyColumns[0] = table.Columns["id"];
            table.PrimaryKey = PrimaryKeyColumns;

            //上面已经把一个表构造弄好了,或者说一张表已经准备好了
            //接下来就是实例化DataSet对象
            ds.Tables.Add(table);

            //现在ds中有一张ParentTable表,这长表有两个列,但是还是没有数据行
            //下面就来添加三行数据

            //行的实例化不能用new DataRow();因为是使用table的构架来实例一个新行
            row = table.NewRow();
            row["id"] = 1;
            row["ParentItem"] = "父表的第1行数据";
            //添加到表中去
            table.Rows.Add(row);

            row = table.NewRow();
            row["id"] = 2;
            row["ParentItem"] = "父表的第2行数据";
            //添加到表中去
            table.Rows.Add(row);

            row = table.NewRow();
            row["id"] = 3;
            row["ParentItem"] = "父表的第3行数据";
            //添加到表中去
            table.Rows.Add(row);

        }

        private void MakeChildTable()
        {
            //实例化一个表的对象,并命名为ChildTable
            DataTable table = new DataTable("ChildTable");
            //声明列和行的对象
            DataColumn column;
            DataRow row;

            //创建新的列,上面是声明,下面才是实例化
            column = new DataColumn();
            //列的数据类型
            column.DataType = System.Type.GetType("System.Int32");
            //列的名称
            column.ColumnName = "ChildID";
            column.Caption = "ID";
            //列的读写方式--只读
            column.AutoIncrement = true;
            column.ReadOnly = true;
            //指定列的内容受唯一限制(内容不能重复)
            column.Unique = true;
            //将设置好的列对象添加到DataTable中
            table.Columns.Add(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);

            //继续创建列
            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对象
            //ds = new DataSet();
            ds.Tables.Add(table);

            //为表创建15个行数据,注意ParentID列的值,正好对应父表中的三行

            for (int j = 1; j 

C# DataTable和DataRelation

标签:blog   names   oid   内容   i++   info   send   声明   好的   

原文地址:https://www.cnblogs.com/wfy680/p/12084407.html


评论


亲,登录后才可以留言!