如何在c#中合并两个数据表? [英] How to merge two datatables in c#?

查看:95
本文介绍了如何在c#中合并两个数据表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试合并两个数据表dt和dt4。使用下面给出的代码获得一个错误。错误是:'column'参数不能为null。帮我找一个合适的解决方案。谢谢。



代码:



I am trying to merge two data table dt and dt4. While using the given below code getting one error. The error is : "'column' argument cannot be null." Help me to find a proper soluion. Thank you.

Code:

protected void ddlCircle_SelectedIndexChanged(object sender, EventArgs e)
{
    ShadingAnalysisDataSetTableAdapters.tbl_CadEngineersTeamTableAdapter cd;
    cd = new ShadingAnalysisDataSetTableAdapters.tbl_CadEngineersTeamTableAdapter();
    DataTable dt = new DataTable();
    dt = cd.GetAvailableData(ddlCircle.SelectedValue); // Getting details of unassigned site

    int x, y;

    DataTable dt3 = new DataTable();
    dt3 = cd.GetTeam();
    y = dt3.Rows.Count;

    x = dt.Rows.Count; // counting the unassinged sites

    DataTable dt2 = new DataTable();
    dt2 = cd.GetAssignTeam(x);           //Getting team based on count

    string[] arr = new string[dt2.Rows.Count];
    int i = 0;
    foreach (DataRow r in dt2.Rows)
    {
        arr[i] = r["Team"].ToString(); // assigning available team to array
        i++;
    }

    string[] strArr = new string[x+1]; // another array to copy arr values.

    i = 0; int j = 0;
    while (j <= x)
    {
        strArr[j]=  arr[i] ; // copying the arr[] values into strArr[] based on count.
        i++;
        j++;

        if (i == y)
        {
            i = 0;
        }
    }
     DataTable dt4 = new DataTable();
     dt4.Columns.Add("Team");

     foreach (string s in strArr)
       {
          dt4.Rows.Add(s); // Converting string array strArr[] to data table dt4
        }

     dt.Merge(dt4);  // error poppup here. Error : 'column' argument cannot be null.
     GridView2.DataSource = dt;
     GridView2.DataBind();
}





dt包含





dt contain

State  District  SiteID  SiteName
-----  --------  ------  --------
Sate1  District1  1001     A
Sate2  District2  1002     B
Sate3  District3  1003     C





dt4包含





dt4 contain

Team
-----
Team1
Team2
Team3





我需要最终输出为:





I need a final output as:

State  District  SiteID  SiteName  Team
-----  --------  ------  --------  -----
Sate1  District1  1001     A       Team1
Sate2  District2  1002     B       Team2
Sate3  District3  1003     C       Team3

推荐答案

select a.*,b.team from table_name1 as a,table_name2 as b


你不能使用合并对于这个案例你可以使用加入数据表





参考:



http:// www。 experts-exchange.com/Programming/Languages/C_Sharp/Q_28284094.html [ ^ ]
you can't use Merge for this Case better you could use Join in Datatable


Refer this:

http://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_28284094.html[^]


试试这样

try like this
string[] strArr = { "a", "b", "c" };
            DataTable dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("NAME");

            dt.Rows.Add("1", "NAME1");
            dt.Rows.Add("2", "NAME2");
            dt.Rows.Add("3", "NAME3");
            dt.Columns.Add("Team");
            int iCount = 0;
            
            foreach (DataRow item in dt.Rows)
            {
                item["Team"] = strArr[iCount];
                iCount++;
            }

            dt.AcceptChanges();


这篇关于如何在c#中合并两个数据表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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