在数据表VB.NET中分组 [英] Group by in datatable VB.NET

查看:60
本文介绍了在数据表VB.NET中分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好先生/妈妈,



我正在研究一个项目,我正在从Excel中导入数据,我在获取数据后得到数据表上的数据我正在努力分组并坚持新桌子。但我不知道我做了什么。请帮帮我..


导入我的数据表后
结构是:



AUTHER TITLE EDITION



BS GREWAL HIGHER ENGG MATHEMATICS 12TH

BS GREWAL HIGHER ENGG MATHEMATICS 12TH

BS GREWAL HIGHER ENGG MATHEMATICS 12TH

BS GREWAL HIGHER ENGG MATHEMATICS 12TH

SCRAY PHYSICS VOL-1 21ST

SCRAY PHYSICS VOL-1 21ST

SCRAY PHYSICS VOL-1 21ST

ROY& SHARMA INTEGRAL CALCULUS 7TH

ROY& SHARMA INTEGRAL CALCULUS 7TH



我想要



AUTHER TITLE EDITION总计



BS GREWAL HIGHER ENGG MATHEMATICS 12TH 4

SCRAY PHYSICS VOL-1 21ST 3

ROY& SHARMA INTEGRAL CALCULUS 7TH 2



我尝试过:



First表



AUTHER TITLE EDITION



BS GREWAL HIGHER ENGG MATHEMATICS 12TH

BS GREWAL HIGHER ENGG MATHEMATICS 12TH

BS GREWAL HIGHER ENGG MATHEMATICS 12TH

BS GREWAL HIGHER ENGG MATHEMATICS 12TH

SCRAY PHYSICS VOL-1 21ST < br $>
SCRAY PHYSICS VOL-1 21ST

SCRAY PHYSICS VOL-1 21ST

ROY& SHARMA INTEGRAL CALCULUS 7TH

ROY& SHARMA INTEGRAL CALCULUS 7TH



到第二张桌子



AUTHER TITLE EDITION总计



BS GREWAL HIGHER ENGG MATHEMATICS 12TH 4

SCRAY PHYSICS VOL-1 21ST 3

ROY& SHARMA INTEGRAL CALCULUS 7TH 2







谢谢

Regard

Rahul Newara

解决方案

试试这个,

我在C#中完成了这段代码,请参考内联评论,试试分析并将其转换为vb

使用此工具进行代码转换。 c#to vb.net [ ^ ]



 DataTable dt =  new  DataTable(); 
dt.Columns.Add( AUTHER);
dt.Columns.Add( TITLE);
dt.Columns.Add( EDITION);

dt.Rows.Add( BS GREWAL Higher ENGG MATHEMATICS 12TH);
dt.Rows.Add( BS GREWAL Higher ENGG MATHEMATICS 12TH);
dt.Rows.Add( BS GREWAL Higher ENGG MATHEMATICS 12TH);
dt.Rows.Add( BS GREWAL Higher ENGG MATHEMATICS 12TH);

dt.Rows.Add( SCRAY PHYSICS VOL-1 -21);
dt.Rows.Add( SCRAY PHYSICS VOL-1 -21);
dt.Rows.Add( SCRAY PHYSICS VOL-1 -21);

dt.Rows.Add( ROY& SHARMA,< span class =code-string>
INTEGRAL CALCULUS 7TH);
dt.Rows.Add( ROY& SHARMA INTEGRAL CALCULUS 7TH);

// 输出数据表
DataTable dtOutput = new DataTable();
dtOutput.Columns.Add( AUTHER);
dtOutput.Columns.Add( TITLE);
dtOutput.Columns.Add( EDITION);
dtOutput.Columns.Add( TOTAL);

// 获取输入数据表中所有列的不同值
DataView view = new DataView(dt);
DataTable distinctValues = view.ToTable( true AUTHER TITLE EDITION);

// 迭代不同的项目并通过查询它们来获取每个不同项目的计数输入表格如下
foreach (DataRow row in distinctValues.Rows)
{
string query = string .Format( AUTHER ='{0}'和TITLE ='{1}'和EDITION ='{2}',row [< span class =code-digit> 0
],行[ 1 ],行[ 2 ]);
int count = dt.Select(query).Length; // 每个不同项目的数量
dtOutput.Rows.Add(row [ 0 ],行[ 1 ],行[ 2 ],数); // 将带有count的不同项添加到目标数据表。
}


Hello Sir/Mam,

I am working on a project, I am working data import from Excel, I get data on data table, after getting data I am working to group and hold on new table. but I don't know what I do. Please Help me..

after import my data table Structure is :

AUTHER TITLE EDITION

B S GREWAL HIGHER ENGG MATHEMATICS 12TH
B S GREWAL HIGHER ENGG MATHEMATICS 12TH
B S GREWAL HIGHER ENGG MATHEMATICS 12TH
B S GREWAL HIGHER ENGG MATHEMATICS 12TH
S.C.RAY PHYSICS VOL-1 21ST
S.C.RAY PHYSICS VOL-1 21ST
S.C.RAY PHYSICS VOL-1 21ST
ROY & SHARMA INTEGRAL CALCULUS 7TH
ROY & SHARMA INTEGRAL CALCULUS 7TH

And I want

AUTHER TITLE EDITION TOTAL

B S GREWAL HIGHER ENGG MATHEMATICS 12TH 4
S.C.RAY PHYSICS VOL-1 21ST 3
ROY & SHARMA INTEGRAL CALCULUS 7TH 2

What I have tried:

First Table

AUTHER TITLE EDITION

B S GREWAL HIGHER ENGG MATHEMATICS 12TH
B S GREWAL HIGHER ENGG MATHEMATICS 12TH
B S GREWAL HIGHER ENGG MATHEMATICS 12TH
B S GREWAL HIGHER ENGG MATHEMATICS 12TH
S.C.RAY PHYSICS VOL-1 21ST
S.C.RAY PHYSICS VOL-1 21ST
S.C.RAY PHYSICS VOL-1 21ST
ROY & SHARMA INTEGRAL CALCULUS 7TH
ROY & SHARMA INTEGRAL CALCULUS 7TH

To Second Table

AUTHER TITLE EDITION TOTAL

B S GREWAL HIGHER ENGG MATHEMATICS 12TH 4
S.C.RAY PHYSICS VOL-1 21ST 3
ROY & SHARMA INTEGRAL CALCULUS 7TH 2



Thank You
Regard
Rahul Newara

解决方案

Try this,
I have done this code in C#, refer the inline comments , try to analyse and convert it to vb
use this tool for code conversion. c# to vb.net[^]

DataTable dt = new DataTable();
        dt.Columns.Add("AUTHER");
        dt.Columns.Add("TITLE");
        dt.Columns.Add("EDITION");

        dt.Rows.Add("B S GREWAL", "HIGHER ENGG MATHEMATICS", "12TH");
        dt.Rows.Add("B S GREWAL", "HIGHER ENGG MATHEMATICS", "12TH");
        dt.Rows.Add("B S GREWAL", "HIGHER ENGG MATHEMATICS", "12TH");
        dt.Rows.Add("B S GREWAL", "HIGHER ENGG MATHEMATICS", "12TH");

        dt.Rows.Add("S.C.RAY", "PHYSICS VOL-1", "21ST");
        dt.Rows.Add("S.C.RAY", "PHYSICS VOL-1", "21ST");
        dt.Rows.Add("S.C.RAY", "PHYSICS VOL-1", "21ST");

        dt.Rows.Add("ROY & SHARMA", "INTEGRAL CALCULUS", "7TH");
        dt.Rows.Add("ROY & SHARMA", "INTEGRAL CALCULUS", "7TH");

        // Output DataTable 
        DataTable dtOutput = new DataTable();
        dtOutput.Columns.Add("AUTHER");
        dtOutput.Columns.Add("TITLE");
        dtOutput.Columns.Add("EDITION");
        dtOutput.Columns.Add("TOTAL");

        // Get the Distinct values of all the columns in the input datatable
        DataView view = new DataView(dt);
        DataTable distinctValues = view.ToTable(true, "AUTHER", "TITLE", "EDITION");

        // iterate the distinct items and get the count of each distinct by querying it in the input table as below
        foreach (DataRow row in distinctValues.Rows)
        {
            string query = string.Format("AUTHER='{0}' and TITLE='{1}' and EDITION='{2}'", row[0], row[1], row[2]);
            int count = dt.Select(query).Length;  // count of each distinct item
            dtOutput.Rows.Add(row[0], row[1], row[2], count); // add the distinct item with count to the target datatable.
        }


这篇关于在数据表VB.NET中分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆