• 动态创建DataTable


    前台设计页面:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>
        </div>
        </form>
    </body>
    </html>

    后台代码:

    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MakeMasterTable();  //创建主表
            MakeDetailTable();  //创建子表
            MakeDataRelation(); //建立主子表关联
        }
    
        private DataSet ds;
    
        private void MakeMasterTable()
        {
            //创建数据表对象
            DataTable table = new DataTable("MasterTable");
            DataColumn column;
            DataRow row;
            //创建数据列对象
            column = new DataColumn();
            //设置数据列的数据类型
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "DictTypeID";//指定数据列名
            column.ReadOnly = true;          //设置数据列为只读列
            column.Unique = true;            //设置数据列中的值不允许重复
            table.Columns.Add(column);
    
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "DictTypeName";
            column.AutoIncrement = false;    //设置数据列中的值不自动递增
            column.Caption = "DictTypeName"; //设置数据列标题
            column.ReadOnly = false;
            column.Unique = false;
            table.Columns.Add(column);
            //创建列数组
            DataColumn[] PrimaryKeyColumns = new DataColumn[1];
            //将DictTypeID赋给列数组
            PrimaryKeyColumns[0] = table.Columns["DictTypeID"];
            table.PrimaryKey = PrimaryKeyColumns;//设置DictTypeID字段为主键
    
            ds = new DataSet();//创建数据集对象
            ds.Tables.Add(table);//将上面创建的数据表对象添加表数据集中
            //为数据表添加数据
            for (int i = 0; i< 2; i++)
            {
                row = table.NewRow();
                row["DictTypeID"] = i;
                row["DictTypeName"] = "DictTypeName " + i;
                table.Rows.Add(row);
            }
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }
    
        private void MakeDetailTable()
        {
            DataTable table = new DataTable("DetailTable");
            DataColumn column;
            DataRow row;
    
            column = new DataColumn();
            column.DataType= System.Type.GetType("System.Int32");
            column.ColumnName = "DictItemID";
            column.AutoIncrement = true;//设置该数据列是自增列
            column.Caption = "DictItemID";
            column.ReadOnly = true;
            column.Unique = true;
    
            table.Columns.Add(column);
    
            column = new DataColumn();
            column.DataType= System.Type.GetType("System.String");
            column.ColumnName = "DictItemName";
            column.AutoIncrement = false;
            column.Caption = "DictItemName";
            column.ReadOnly = false;
            column.Unique = false;
            table.Columns.Add(column);
    
            column = new DataColumn();
            column.DataType= System.Type.GetType("System.Int32");
            column.ColumnName = "DictTypeID";
            column.AutoIncrement = false;
            column.Caption = "DictTypeID";
            column.ReadOnly = false;
            column.Unique = false;
            table.Columns.Add(column);
    
            ds.Tables.Add(table);
    
            for(int i = 0; i <= 4; i ++)
            {
                row = table.NewRow();
                //row["DictItemID"] = i;//因为该列是自增列所以不用赋值
                row["DictItemName"] = "DictItemName " + i;
                row["DictTypeID"] = 0;
                table.Rows.Add(row);
            }
            for(int i = 0; i <= 4; i ++)
            {
                row = table.NewRow();
                //row["DictItemID"] = i + 5;
                row["DictItemName"] = "DictItemName " + (i+5);
                row["DictTypeID"] = 1;
                table.Rows.Add(row);
            }
        }
    
        private void MakeDataRelation()
        {
            DataColumn masterColumn =
                ds.Tables["MasterTable"].Columns["DictTypeID"];
            DataColumn detailColumn =
                ds.Tables["DetailTable"].Columns["DictTypeID"];
            //使用DataRelation对象建立主子表的关联关系
            DataRelation relation = new 
                DataRelation("MasterDetail", masterColumn, detailColumn);
            ds.Tables["DetailTable"].ParentRelations.Add(relation);
        }
    
    }
  • 相关阅读:
    文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"
    web.xml配置参数context-param和init-param的区别
    web.xml中通过contextConfigLocation的读取spring的配置文件
    Web.xml配置详解之context-param
    xml 文件 和xsd 文件的关系
    事务并发控制
    Java泛型详解
    MongoDB集群
    MongoDB集群——分片
    MongoDB集群——副本集
  • 原文地址:https://www.cnblogs.com/652769324qq/p/2968828.html
Copyright © 2020-2023  润新知