如何在c#中合并两个数据表? [英] How to merge two datatables in c#?
本文介绍了如何在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 useMerge
for this Case better you could use Join inDatatable
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屋!
查看全文