在数据表VB.NET中分组 [英] Group by in datatable 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屋!