从gridview选中拖拽的多行数据并放在一个datatable中执行DataTable中的查询返回新的DataTable

该博客讲述了如何从GridView中选取并拖拽多行数据到DataTable,然后将数据进行分组,创建新的DataTable。通过指定查询条件,利用GetNewDataTable方法执行查询并返回新的DataTable实例。内容涉及到数据处理、DataTable操作以及查询过滤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从gridview选中拖拽的多行数据并放在一个datatable中

            int[]rows = dataGridView.GetSelectedRows();

            List<DataRow> row = newList<DataRow>();

            for(int i = 0; i < rows.Length; i++)

            {            

                row.Add(dataGridView.GetDataRow((int)rows[i]));

            } if (row.Count != 0)

            {

                DataTable dt1 = row[0].Table;

                DataTable dt = newDataTable();

                dt = dt1.Clone();

                foreach (DataRowdr in row)

                {

                   dt.ImportRow(dr);

                }

2.把一个datatable放到多个datatable中、

dt = workItem.State["dtDxlivery"]as DataTable;

            DataTabledt1 = GetNewDataTable(dt, "支付方式='4'");

            DataTabledt2 = GetNewDataTable(dt, "支付方式<>'4'");

            DataTabledt3 = GetNewDataTable(ds.Tables[0], "template_type='普通快递'");

            DataTabledt4 = GetNewDataTable(ds.Tables[0], "template_type='到付快递'");

            DataSetdss = new DataSet();

            foreach(DataRow r indt4.Rows)

            {

                string str = r[4].ToString() + "到付快递";

                string printer = r[3].ToString();

                string template = r[1].ToString();

                DataTable dtt = newDataTable(str);

                dtt =GetNewDataTable(dt1, "物流公司='" + r[4].ToString() + "'");

                if (dtt.Rows.Count != 0)

                {

                    if ((printer == "")|| (template == ""))

                    {

                        MessageBox.Show("请为物流匹配好打印机和打印机模板");

                        this.Dispose();

 

                    }

                    else

                    {

                        print(dtt,str, printer, template);

                    }

                }

/// 执行DataTable中的查询返回新的DataTable

        /// </summary>

        /// <paramname="dt">源数据DataTable</param>

        /// <paramname="condition">查询条件</param>

        /// <returns></returns>

        privateDataTable GetNewDataTable(DataTable dt, stringcondition)

        {

            DataTablenewdt = new DataTable();

            newdt = dt.Clone();

            DataRow[]dr = dt.Select(condition);

            for(int i = 0; i < dr.Length; i++)

            {

                newdt.ImportRow((DataRow)dr[i]);

            }

            returnnewdt;//返回的查询结果

        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值