\hope my code can help :
DataTable ordertable = new DataTable();
DataColumn orderID = new DataColumn("orderID");
DataColumn userName = new DataColumn("userName");
DataColumn cudID = new DataColumn("cudID");
DataColumn cusName = new DataColumn("cusName");
DataColumn orderDate = new DataColumn("orderDate");
DataColumn Payment = new DataColumn("payment");
DataColumn orderTotal = new DataColumn("orderTotal");
orderID.DataType = System.Type.GetType("System.String");
userName.DataType = System.Type.GetType("System.String");
cudID.DataType = System.Type.GetType("System.String");
cusName.DataType = System.Type.GetType("System.String");
orderDate.DataType = System.Type.GetType("System.String");
Payment.DataType = System.Type.GetType("System.String");
orderTotal.DataType = System.Type.GetType("System.String");
ordertable.Columns.Add(orderID);
ordertable.Columns.Add(userName);
ordertable.Columns.Add(cudID);
ordertable.Columns.Add(cusName);
ordertable.Columns.Add(orderDate);
ordertable.Columns.Add(Payment);
ordertable.Columns.Add(orderTotal);
UserInfo searchuser = new UserInfo();
foreach (OrderInfo order in sorderlist)
{
DataRow row = ordertable.NewRow();
row[orderID] = order.ID;
searchuser = userList.Find(user => user.ID == order.userID);
row[userName] = searchuser.Name;
row[cudID] = order.cusID;
CustomerInfo search = new CustomerInfo();
search = cusList.Find(cus => cus.ID == order.cusID);
row[cusName] = search.Name;
row[orderDate] = order.Date;
row[Payment] = order.paymentType;
row[orderTotal] = order.Total;
ordertable.Rows.Add(row);
}
DataTable detailstable = new DataTable();
DataColumn orderdID = new DataColumn("orderdID");
DataColumn itemID = new DataColumn("itemID");
DataColumn itemCode = new DataColumn("itemName");
DataColumn itemPrice = new DataColumn("itemPrice");
orderdID.DataType = System.Type.GetType("System.String");
itemID.DataType = System.Type.GetType("System.String");
itemCode.DataType = System.Type.GetType("System.String");
itemPrice.DataType = System.Type.GetType("System.String");
detailstable.Columns.Add(orderdID);
detailstable.Columns.Add(itemID);
detailstable.Columns.Add(itemCode);
detailstable.Columns.Add(itemPrice);
foreach (OrderDetails order in orderDetailsList)
{
int index = orderlist.FindIndex(item => item.ID == order.OrderID);
if (index >= 0)
{
DataRow row = detailstable.NewRow();
row[orderdID] = order.OrderID;
row[itemID] = order.ItemID;
ItemInfo search = new ItemInfo();
search = items.Find(item => item.ID == order.ItemID);
row[itemCode] = search.Name;
row[itemPrice] = search.SalePrice;
if (SSOption.LoginLevel == 0)
{
detailstable.Rows.Add(row);
}
else if (SSOption.LoginUsername ==SQLComm.GetUserFormID(SQLComm.GetUserFromOrder(order.OrderID)).Name)
{
detailstable.Rows.Add(row);
}
}
}
DataSet dsorders = new DataSet("Orders");
dsorders.Tables.Add(ordertable);
dsorders.Tables.Add(detailstable);
DataColumn colchild = dsorders.Tables[1].Columns[0];
DataRelation drOrderID = new DataRelation("ordersID", dsorders.Tables[0].Columns[0], colchild);
dsorders.Relations.Add(drOrderID);