我试图合并两个// Set data-stripe
$form->get('company_data')
->get('legalName')->setAttributes(['attr' => ['data-stripe', 'name']]);
.NET
DataTables
不幸的是,结果是每个相应表格缺少列的DataTable dtCalls = new DataTable();
dtCalls.Columns.Add("EmpID",typeof(string));
dtCalls.Columns.Add("Date",typeof(DateTime));
dtCalls.Columns.Add("Calls",typeof(int));
DataTable dtPages = new DataTable();
dtPages.Columns.Add("EmpID",typeof(string));
dtPages.Columns.Add("Date",typeof(DateTime));
dtPages.Columns.Add("Orders",typeof(int));
SqlCommand commRetrieveCalls = new SqlCommand(strRetrieveCalls,conn);
SqlDataAdapter adpRetrieveCalls = new SqlDataAdapter(commRetrieveCalls);
DataSet dsRetrieveCalls = new DataSet();
adpRetrieveCalls.Fill(dsRetrieveCalls);
DataTable dtRetrieveCalls = dsRetrieveCalls.Tables[0];
foreach(DataRow dr in dtRetrieveCalls.Rows) {
dtCalls.Rows.Add(dr[0].ToString(),DateTime.Parse(dr[1].ToString()),Convert.ToInt32(dr[2].ToString()));
}
SqlCommand commRetrieveOrders = new SqlCommand(strRetrievePages,conn);
SqlDataAdapter adpRetrieveOrders = new SqlDataAdapter(commRetrieveOrders);
DataSet dsRetrieveOrders = new DataSet();
adpRetrieveOrders.Fill(dsRetrieveOrders);
DataTable dtRetrieveOrders = dsRetrieveOrders.Tables[0];
foreach(DataRow drOrder in dtRetrieveOrders.Rows) {
dtPages.Rows.Add(drOrder[0].ToString(),DateTime.Parse(drOrder[1].ToString()),Convert.ToInt32(drOrder[2].ToString()));
}
个字段。
答案 0 :(得分:1)
看起来问题是您没有为表建立主键,因此Merge不知道如何将同一员工(和日期?)的行合并为一行。结果很可能是你最终得到了两个表的联合。尝试通过类似dtCalls.PrimaryKey = new DataColumn[] { dtCalls.Columns[0], dtCalls.Columns[1] };
的设置在每个表中设置主键(假设日期是PK的一部分)。对dtPages执行相同操作,然后再次尝试合并。