两个DataTable 编号一样则合并 得到两个DataTable第一个:车次ID 车次号 终点站 发车时间 坐席总数 剩余座席数 异地订票座席数第二个:车次ID 车次号 异地已订数如果两个表格车次ID相同 则把两个表合并成Table1的所有列+Table2的异地已订数新的表格 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用DataTable.Merger就可以了。比如:DataTable dt1 = new DataTable();dt1.Columns.Add("ID", typeof(int));dt1.Columns.Add("Name", typeof(string));dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0] };dt1.Rows.Add(1, "Age");dt1.Rows.Add(2, "Apple");dt1.Rows.Add(3, "Orange");DataTable dt2 = new DataTable();dt2.Columns.Add("ID", typeof(int));dt2.Columns.Add("Price", typeof(decimal));//dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };dt2.Rows.Add(1, 10);dt2.Rows.Add(2, 6);dt2.Rows.Add(3, 7);DataTable dt3 = dt1.Copy();dt3.Merge(dt2); select a.车次ID,a.车次号,a.终点站,a.发车时间,a.坐席总数,a.剩余座席数,a.异地订票座席数,b.异地已订数 from table1 a,table2 b where a.车次ID = b.车次ID dt3.Merge(dt2);是个方法 调用之后再怎么用? sql联接或者通过程序对DataTable操作 遍历dt1,在dt2中查询信息,如果有记录,添加新列dt1.Columns.Add("",typeof(int)); 添加 异地已订数 你可以使用DataView过虑你的数据。实在不行就遍历操作了。 能不能qq请教前辈?363040367 3Q 表一: 车次id 车次号 DataTable dtBefore = ydcp.getData(txtCC.Text.Trim(), dtStart.Value, dtEnd.Value);表二: 车次id 发车时间组合后字段:车次id 车次号 发车时间DataTable dt = bcc.Qry(txtCC.Text.Trim(), true, dtStart.Value, dtEnd.Value, Pub.YDDPConnectionstring);DataTable dtClone = dtBefore.Clone(); for (int i = 0; i < dt.Columns.Count; i++) { if (dtClone.Columns.Contains(dt.Columns[i].ColumnName) == false) { DataColumn c = new DataColumn(dt.Columns[i].ColumnName); dtClone.Columns.Add(c); } } if (dt.Rows.Count == 0) { return; }if (dtBefore.Rows.Count != dt.Rows.Count) { for (int i = 0; i < dtBefore.Rows.Count; i++) { for (int j = 0; j < dt.Rows.Count; j++) { if (dtBefore.Rows[i]["id"].ToString() == dt.Rows[j]["id"].ToString()) { DataRow dr = dtClone.NewRow(); dr["id"] = dtBefore.Rows[i]["id"].ToString(); dr["chech"] = dtBefore.Rows[i]["chech"].ToString(); dr["ftime"] = dt.Rows[j]["ftime"].ToString(); dtClone.Rows.Add(dr); } } } }然后直接把dtClone赋值给数据源 求EWS二次开发验证邮箱账号密码的方法 一个EF问题,在线等啊.很急.谢谢. 用户登录模块问题!!从前台界面输入用户名和密码如何与后台定义的类做比较,并成功验证登录进入系统!! 在C#里,通过敲回车,可以从一个控件跳转到下一个控件,如此循环! C#调用C++dll的问题(在线等) C#中有模块这个概念吗? C#字符串转换问题 2种不同的代码(tcp/ip client),哪个效率相对来说好一些. C#如何获取多个物理驱动器的型号和编号??? 簡單問題 。 怎样记录用户的操作 使用usercontrol,为什么不支持Properties.Resource的资源提取方法?
dt1.Columns.Add("ID", typeof(int));
dt1.Columns.Add("Name", typeof(string));
dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0] };
dt1.Rows.Add(1, "Age");
dt1.Rows.Add(2, "Apple");
dt1.Rows.Add(3, "Orange");DataTable dt2 = new DataTable();
dt2.Columns.Add("ID", typeof(int));
dt2.Columns.Add("Price", typeof(decimal));
//dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
dt2.Rows.Add(1, 10);
dt2.Rows.Add(2, 6);
dt2.Rows.Add(3, 7);
DataTable dt3 = dt1.Copy();
dt3.Merge(dt2);
dt3.Merge(dt2);是个方法 调用之后再怎么用?
dt1.Columns.Add("",typeof(int)); 添加 异地已订数
实在不行就遍历操作了。
表一: 车次id 车次号
DataTable dtBefore = ydcp.getData(txtCC.Text.Trim(), dtStart.Value, dtEnd.Value);
表二: 车次id 发车时间
组合后字段:车次id 车次号 发车时间
DataTable dt = bcc.Qry(txtCC.Text.Trim(), true, dtStart.Value, dtEnd.Value, Pub.YDDPConnectionstring);
DataTable dtClone = dtBefore.Clone();
for (int i = 0; i < dt.Columns.Count; i++)
{
if (dtClone.Columns.Contains(dt.Columns[i].ColumnName) == false)
{
DataColumn c = new DataColumn(dt.Columns[i].ColumnName);
dtClone.Columns.Add(c);
}
}
if (dt.Rows.Count == 0)
{
return;
}
if (dtBefore.Rows.Count != dt.Rows.Count)
{
for (int i = 0; i < dtBefore.Rows.Count; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
if (dtBefore.Rows[i]["id"].ToString() == dt.Rows[j]["id"].ToString())
{
DataRow dr = dtClone.NewRow();
dr["id"] = dtBefore.Rows[i]["id"].ToString();
dr["chech"] = dtBefore.Rows[i]["chech"].ToString();
dr["ftime"] = dt.Rows[j]["ftime"].ToString();
dtClone.Rows.Add(dr);
}
}
}
}然后直接把dtClone赋值给数据源