从循环中加入数据表并合并到一个数据集中

发布于 2024-11-17 17:29:29 字数 990 浏览 8 评论 0原文

我有这样的要求,即用户请求一个或多个零件编号。并且我需要在一个数据集中显示所有结果,

例如:请求序列号,

PartNumber  Required Quantity
   A               2  
   B               1
   C               3

代码为:

//循环请求

foreach (DataRow a in request.Rows)
{
   //select top(Quantity) SerialNumber,PartNumber where PartNumber=@PartNumber
   var dt = new DataTable();
} 

//1。零件编号 A

     SerialNumber  Partnumber
1                A
2                A

+

//2。零件编号 B

     SerialNumber  Partnumber
1                B

//3。 PartNumber C

     SerialNumber  Partnumber
1                C
2                C
3                C

//Load to DataSet

结果将类似于:

SerialNumber  Partnumber
1                A
2                A
1                B   
1                C
2                C
3                C 

Thanks in Regards

I have this requirement that the user request one or more partnumbers.And i need to display all the result in one Data Set

Ex: Request SerialNumbers with

PartNumber  Required Quantity
   A               2  
   B               1
   C               3

Code:

//Loop Request

foreach (DataRow a in request.Rows)
{
   //select top(Quantity) SerialNumber,PartNumber where PartNumber=@PartNumber
   var dt = new DataTable();
} 

//1. PartNumber A

     SerialNumber  Partnumber
1                A
2                A

+

//2. PartNumber B

     SerialNumber  Partnumber
1                B

//3. PartNumber C

     SerialNumber  Partnumber
1                C
2                C
3                C

//Load to DataSet

And the result will be something like:

SerialNumber  Partnumber
1                A
2                A
1                B   
1                C
2                C
3                C 

Thanks in Regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枫以 2024-11-24 17:29:29

我不确定您希望在此处加入哪两个表以及在哪个键上加入,但不管怎样,最简单的方法是使用 LINQ to Dataset。例如,

var query = from a in table1
            join
            b in table2 
            on
            a.FkColumn = b.PKColumn select a,b;

I am not sure what two tables you wish to join here and on what key but regadless of that, the simplest way will be to use LINQ to Dataset. For example,

var query = from a in table1
            join
            b in table2 
            on
            a.FkColumn = b.PKColumn select a,b;
开始看清了 2024-11-24 17:29:29

请检查以下逻辑:

DataTable myDataTable = new DataTable();
        DataColumn PartNumber = new DataColumn("PartNumber");
        DataColumn RequiredQuantity = new DataColumn("RequiredQuantity");
        myDataTable.Columns.Add(PartNumber);
        myDataTable.Columns.Add(RequiredQuantity);

        DataRow dataRowPN1 = myDataTable.NewRow();
        DataRow dataRowPN2 = myDataTable.NewRow();
        DataRow dataRowPN3 = myDataTable.NewRow();


        dataRowPN1["PartNumber"] = "A";
        dataRowPN2["PartNumber"] = "B";
        dataRowPN3["PartNumber"] = "C";
        dataRowPN1["RequiredQuantity"] = "2";
        dataRowPN2["RequiredQuantity"] = "1";
        dataRowPN3["RequiredQuantity"] = "3";
        myDataTable.Rows.Add(dataRowPN1);
        myDataTable.Rows.Add(dataRowPN2);
        myDataTable.Rows.Add(dataRowPN3);
        int  i = myDataTable.Rows.Count;

        DataTable joinDataTable = new DataTable();
        DataColumn SerialNumber = new DataColumn("SerialNumber");
        DataColumn JoinPartNumber = new DataColumn("PartNumber");
        joinDataTable.Columns.Add(SerialNumber);
        joinDataTable.Columns.Add(JoinPartNumber);
        foreach (DataRow dr in myDataTable.Rows)
        {
            for (int count = 1; count <= Convert.ToInt16(dr["RequiredQuantity"]); count++)
            {
                DataRow joindataRow = joinDataTable.NewRow();
                joindataRow["SerialNumber"] = count.ToString().Trim();
                joindataRow["PartNumber"] = dr["PartNumber"].ToString().Trim();
                joinDataTable.Rows.Add(joindataRow);
            }
        }
        Response.Write(joinDataTable.Rows.Count);  

Please check below logic:

DataTable myDataTable = new DataTable();
        DataColumn PartNumber = new DataColumn("PartNumber");
        DataColumn RequiredQuantity = new DataColumn("RequiredQuantity");
        myDataTable.Columns.Add(PartNumber);
        myDataTable.Columns.Add(RequiredQuantity);

        DataRow dataRowPN1 = myDataTable.NewRow();
        DataRow dataRowPN2 = myDataTable.NewRow();
        DataRow dataRowPN3 = myDataTable.NewRow();


        dataRowPN1["PartNumber"] = "A";
        dataRowPN2["PartNumber"] = "B";
        dataRowPN3["PartNumber"] = "C";
        dataRowPN1["RequiredQuantity"] = "2";
        dataRowPN2["RequiredQuantity"] = "1";
        dataRowPN3["RequiredQuantity"] = "3";
        myDataTable.Rows.Add(dataRowPN1);
        myDataTable.Rows.Add(dataRowPN2);
        myDataTable.Rows.Add(dataRowPN3);
        int  i = myDataTable.Rows.Count;

        DataTable joinDataTable = new DataTable();
        DataColumn SerialNumber = new DataColumn("SerialNumber");
        DataColumn JoinPartNumber = new DataColumn("PartNumber");
        joinDataTable.Columns.Add(SerialNumber);
        joinDataTable.Columns.Add(JoinPartNumber);
        foreach (DataRow dr in myDataTable.Rows)
        {
            for (int count = 1; count <= Convert.ToInt16(dr["RequiredQuantity"]); count++)
            {
                DataRow joindataRow = joinDataTable.NewRow();
                joindataRow["SerialNumber"] = count.ToString().Trim();
                joindataRow["PartNumber"] = dr["PartNumber"].ToString().Trim();
                joinDataTable.Rows.Add(joindataRow);
            }
        }
        Response.Write(joinDataTable.Rows.Count);  
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文