C# 从循环中联接数据表并合并到一个数据集中

C# 从循环中联接数据表并合并到一个数据集中,c#,asp.net,system.data.datatable,C#,Asp.net,System.data.datatable,我要求用户请求一个或多个零件号。我需要在一个数据集中显示所有结果 例如:请求带有 PartNumber Required Quantity A 2 B 1 C 3 代码: //循环请求 foreach (DataRow a in request.Rows) { //select top(Quantity) SerialNumber,PartNumber where PartNumb

我要求用户请求一个或多个零件号。我需要在一个数据集中显示所有结果

例如:请求带有

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();
} 
//一,。零件号A

     SerialNumber  Partnumber
1                A
2                A
+

//二,。零件号B

     SerialNumber  Partnumber
1                B
//三,。零件号C

     SerialNumber  Partnumber
1                C
2                C
3                C
//加载到数据集

结果是:

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

感谢您的关注

我不确定您希望在这里加入哪两个表,以及在哪一个键上加入哪两个表,但不考虑这一点,最简单的方法是使用LINQ to Dataset。比如说,

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

我不确定您希望在这里连接哪两个表,以及在哪一个键上连接哪两个表,但不考虑这一点,最简单的方法将是使用LINQ to Dataset。比如说,

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

请检查以下逻辑:

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);  
DataTable myDataTable=newdatatable();
DataColumn零件号=新的DataColumn(“零件号”);
DataColumn RequiredQuantity=新DataColumn(“RequiredQuantity”);
myDataTable.Columns.Add(零件号);
myDataTable.Columns.Add(所需数量);
DataRow dataRowPN1=myDataTable.NewRow();
DataRow dataRowPN2=myDataTable.NewRow();
DataRow dataRowPN3=myDataTable.NewRow();
dataRowPN1[“零件号”]=“A”;
dataRowPN2[“零件号”]=“B”;
dataRowPN3[“零件号”]=“C”;
dataRowPN1[“所需数量”]=“2”;
dataRowPN2[“所需数量”]=“1”;
dataRowPN3[“所需数量”]=“3”;
myDataTable.Rows.Add(dataRowPN1);
myDataTable.Rows.Add(dataRowPN2);
myDataTable.Rows.Add(dataRowPN3);
int i=myDataTable.Rows.Count;
DataTable joinDataTable=新DataTable();
DataColumn SerialNumber=新的DataColumn(“SerialNumber”);
DataColumn JoinPartNumber=新的DataColumn(“PartNumber”);
joinDataTable.Columns.Add(SerialNumber);
joinDataTable.Columns.Add(JoinPartNumber);
foreach(myDataTable.Rows中的DataRow dr)
{

对于(int count=1;count请检查以下逻辑:

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);  
DataTable myDataTable=newdatatable();
DataColumn零件号=新的DataColumn(“零件号”);
DataColumn RequiredQuantity=新DataColumn(“RequiredQuantity”);
myDataTable.Columns.Add(零件号);
myDataTable.Columns.Add(所需数量);
DataRow dataRowPN1=myDataTable.NewRow();
DataRow dataRowPN2=myDataTable.NewRow();
DataRow dataRowPN3=myDataTable.NewRow();
dataRowPN1[“零件号”]=“A”;
dataRowPN2[“零件号”]=“B”;
dataRowPN3[“零件号”]=“C”;
dataRowPN1[“所需数量”]=“2”;
dataRowPN2[“所需数量”]=“1”;
dataRowPN3[“所需数量”]=“3”;
myDataTable.Rows.Add(dataRowPN1);
myDataTable.Rows.Add(dataRowPN2);
myDataTable.Rows.Add(dataRowPN3);
int i=myDataTable.Rows.Count;
DataTable joinDataTable=新DataTable();
DataColumn SerialNumber=新的DataColumn(“SerialNumber”);
DataColumn JoinPartNumber=新的DataColumn(“PartNumber”);
joinDataTable.Columns.Add(SerialNumber);
joinDataTable.Columns.Add(JoinPartNumber);
foreach(myDataTable.Rows中的DataRow dr)
{

对于(int count=1;count agree)。如果您的问题是“我如何使用此锤子拧入此螺钉?”,则答案是“改用螺丝刀”。同意。如果您的问题是“我如何使用此锤子拧入此螺钉?”,则答案是“改用螺丝刀”。