zoukankan      html  css  js  c++  java
  • C#客户端绑定DataView和DataTable的技巧

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace BindDataGridViewAndDataTable
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                initData();
               

            }
             System.Data.DataTable dt  =   new  DataTable();
             System.Data.DataSet ds  =   new  DataSet();

           
     
              /// <summary>
              /// 初始化数据
              /// </summary>
              private   void  initData()
                {
                 dt.TableName  =   "Table1" ;
                 ds.Tables.Add(dt);
                 dt.Columns.Add( "ID" ,  typeof ( string ));
                 dt.Columns.Add( "板块" ,  typeof ( string ));
                 dt.Columns.Add( "积分" ,  typeof ( int ));
     
                 addData(dt,  "jinjazz" ,  "delphi" ,  50000 );
                 addData(dt,  "jinjazz" ,  "Sqlserver" ,  10000 );
                 addData(dt,  "jinjazz" ,  ".net" ,  20000 );
                 addData(dt,  "zjcxc" ,  "Sqlserver" ,  900000 );
                 addData(dt,  "zjcxc" ,  "vb" ,  10000 );
                 addData(dt,  "zswang" ,  "delphi" ,  70000 );
                 addData(dt,  "zswang" ,  ".net" ,  30000 );
             }
     
              private   void  addData(DataTable dt,  string  Name,  string  Catalog,  int  Salary)
               {
                 System.Data.DataRow drow  =  dt.NewRow();
                 drow[ "ID" ]  =  Name;
                 drow[ "板块" ]  =  Catalog;
                 drow[ "积分" ]  =  Salary;
                 dt.Rows.Add(drow);
             }
     
            private void Form1_Load(object sender, EventArgs e)
            {  
               
                  // 绑定所有没有重复的ID到comboBox1
                   this .comboBox1.DataSource  =  dt.DefaultView.ToTable( true ,  new string[]{"ID"} );
                  this .comboBox1.DisplayMember  =   "ID" ;
     
                  // 绑定所有板块到comboBox2
                  this .comboBox2.DataSource  =   new  DataView(dt);
                  this .comboBox2.DisplayMember  =   "板块" ;
     
                  // 设置两个联动刷新
                  this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);

                  this.comboBox2.SelectedIndexChanged += new EventHandler(comboBox2_SelectedIndexChanged);

     
                  // 绑定所有数据到dataGridView1
                  this .dataGridView1.DataSource  =  dt;
     
                  // 绑定所有数据到dataGridView2
                  this .dataGridView2.DataSource  =   new  DataView(dt);
     
                  // 利用DataRelation求汇总表格
                 System.Data.DataTable dtGroup1 = dt.DefaultView.ToTable( true , "ID" );
                 dtGroup1.TableName  =   "Table2" ;
                 ds.Tables.Add(dtGroup1);
                 System.Data.DataRelation dr  =   new  DataRelation( "relation" , dtGroup1.Columns[ "ID" ], dt.Columns[ "ID" ]);
                 ds.Relations.Add(dr);
                 dtGroup1.Columns.Add( "总积分" ).Expression  =   "sum(child(relation).积分)" ;
                 dtGroup1.Columns.Add( "板块数" ).Expression  =   "count(child(relation).板块)" ;
                  this .dataGridView3.DataSource  =  dtGroup1;
     

            }

            void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
               
            }


           private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                // 设置combobox2和comboBox1同步
                System.Data.DataView dv = this.comboBox2.DataSource as DataView;
                dv.RowFilter = string.Format(" ID='{0}' ", this.comboBox1.Text);
                // 设置dataGridView2和comboBox1同步
                dv = this.dataGridView2.DataSource as DataView;
                dv.RowFilter = string.Format(" ID='{0}' ", this.comboBox1.Text);

            }


        }
    }

  • 相关阅读:
    React 之使用 fetch
    react-native 环境搭建
    create-react-app 配置 less
    React新的前端思维方式
    字体图标 —— IconMoon
    你不知道的javascript 之 >>
    前端的自我修养
    jquery 学习
    html的meta总结
    git基本操作 nginx基本操作
  • 原文地址:https://www.cnblogs.com/beeone/p/2005328.html
Copyright © 2011-2022 走看看