如何使数据集包含多个表?

时间:2015-02-07 10:45:43

标签: c# xml linq dataset

我有问题在1个数据集中添加多个表,我只能在1个数据集中加载1个表。我无法在1个数据集中获取customer表和item表。我哪里做错了?这是我第一次使用C#程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using System.Data;

namespace DataSET
{
    class Program
    {

        static void Main(string[] args)
        {

            GetCustDetail();
            GetItemDetail();


        }

        public static void GetCustDetail()
        {
            DataSet dataSet = new DataSet();

            DataTable cust_Table = new DataTable();
            dataSet.ReadXml("CustDetail.xml", XmlReadMode.ReadSchema);





            DataColumn cust_Column = cust_Table.Columns.Add("CustID", typeof(Int32));
            cust_Column.AllowDBNull = false;
            cust_Column.Unique = true;



            cust_Table.Columns.Add("CustLName", typeof(String));
            cust_Table.Columns.Add("Purchases", typeof(Double));

            foreach (DataTable dataTable in dataSet.Tables)
                cust_Table.BeginLoadData();

            dataSet.ReadXml("CustDetail.xml");

            foreach (DataTable dataTable in dataSet.Tables)
                cust_Table.EndLoadData();

            dataSet.Tables.Add(cust_Table);
            dataSet.AcceptChanges();
        }

        public static void GetItemDetail()
        {
            DataSet dataSet = new DataSet();

            DataTable item_Table = new DataTable();
            dataSet.ReadXml("ItemDetail.xml", XmlReadMode.ReadSchema);



            DataColumn item_Column = item_Table.Columns.Add("ItemID", typeof(Int32));
            item_Column.AllowDBNull = false;
            item_Column.Unique = true;



            item_Table.Columns.Add("ItemName", typeof(String));
            item_Table.Columns.Add("Decription", typeof(Double));

            foreach (DataTable dataTable in dataSet.Tables)
                item_Table.BeginLoadData();

            dataSet.ReadXml("ItemDetail.xml");

            foreach (DataTable dataTable in dataSet.Tables)
                item_Table.EndLoadData();

            dataSet.Tables.Add(item_Table);
            dataSet.AcceptChanges();
        }



    }
}

2 个答案:

答案 0 :(得分:0)

您没有在数据集上添加数据表..

您可以在数据集上添加数据表,如下所示:

DataSet ds = new DataSet();

DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();

ds.Tables.Add(dt1);
ds.Tables.Add(dt2);

希望有所帮助:)

答案 1 :(得分:0)

要添加多个表,您的两个数据表都具有相同的列名和相同的列号,请使用下面的代码:

                DataSet ds = new DataSet();
                ds.Tables.Add(Table1);
                ds.Tables.Add(Table2);
                ds.AcceptChanges();