获取DataGridView绑定BindingSource的数据表,并根据树控件点击进行筛选数据表,下拉控件自定义排序问题初步解决方法,解决了该行属于另一个表的错误提示.

2013年12月19日→星座:射手座
二〇一三年冬月十七
癸巳〖蛇〗甲子月己未日癸酉时
今属:土;五行:水火木土金;缺:。
纳音五行:长流水。 
    
阿弥陀佛圣诞大笑大笑

        void 保存记事历XML(/*获取DataGridView绑定BindingSource的数据表,并根据树控件点击进行筛选数据表*/)
        {
            string 表名 = (树.SelectedNode != null) ? ((DataRow)树.SelectedNode.Tag).Table.TableName : (string)编辑控表.Tag,
                选名 = (树.SelectedNode != null) ? 树.SelectedNode.Text : "";/*用于从众多项目中选择*/
            ((BindingSource)编辑控表.DataSource).EndEdit();
            DataTable 数据表 = (((BindingSource)编辑控表.DataSource).DataSource.GetType().Name == "DataTable") ?
                (DataTable)(((BindingSource)编辑控表.DataSource).DataSource) : ((DataSet)((BindingSource)编辑控表.DataSource).DataSource).Tables[表名];
            //DataColumn[] 列集 = new DataColumn[数据集.Columns.Count];
            //数据集.Columns.CopyTo(列集, 0);
            //string[] 列名 = new string[数据集.Columns.Count]; int 计数 = 0;
            //foreach (DataColumn 元 in 数据集.Columns) { 列名[计数] = 元.ColumnName; 计数++; }
            string[] 列名 = new string[编辑控表.Columns.Count], 节径 = 树.SelectedNode.FullPath.Replace("\\", "·").Split('·'); int 计数 = 0;
            foreach (DataGridViewColumn 元 in 编辑控表.Columns)
            {
                if (!"密码 ID".Contains(元.HeaderText)) 列名[计数] = 元.HeaderText;
                计数++;
            }
            列名 = 列名.OfType<string>(/*去掉数组中为null的元素数组自动减小*/).ToArray();
            DataView 筛选表 = 数据表.DefaultView.ToTable(true, 列名).DefaultView;
            if (选名 != "") 筛选表.RowFilter = 列名[节径.Length - 1] + " ='" + 选名 + "'";
            数据表 = (选名 != "") ? 筛选表.ToTable() : 数据表;
            选名 = (选名 != "") ? "[" + 选名 + "]" : "[全选]";
            数据表.WriteXml(数据表.TableName + 选名 + ".xml");
        }

数据表排序与数据筛选

            DataTable 排序表 = 数据表.Tables["表名"].DefaultView.ToTable(true, "数据字段").Select("数据字段 like '%段'", "数据字段").CopyToDataTable(),
                DataRow 新增 = 排序表.NewRow();
                新增[0] = "请选择";
                排序表.Rows.InsertAt(新增, 0);
                foreach (DataRow 数据行 in 数据表.Tables["表名"].DefaultView.ToTable(true, "数据字段").Select("数据字段 like '%泓%'", "数据字段").CopyToDataTable().Rows)
                    排序表.Rows.Add(数据行.ItemArray);/*解决了该行属于另一个表的错误提示,同时解决了默认加载时前面带数字的不同字符串间无序问题,如:01段,01泓1,02段,02泓2,要的效果是:01段,02段,01泓1,02泓2*/
                下拉控件.DataSource = 排序表;
                下拉控件.ValueMember = "数据字段";
                下拉控件.Text = "请选择";










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值