【问题标题】:how to make data set contain multiple tables?如何使数据集包含多个表?
【发布时间】:2015-04-07 12:08:02
【问题描述】:

我在 1 个数据集中添加多个表时遇到问题,我只能在 1 个数据集中加载 1 个表。我无法在 1 个数据集中获取客户表和项目表。我哪里做错了?这是我第一次接触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();
        }



    }
}

【问题讨论】:

    标签: c# xml linq dataset


    【解决方案1】:

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

    您可以像这样在数据集上添加数据表:

    DataSet ds = new DataSet();
    
    DataTable dt1 = new DataTable();
    DataTable dt2 = new DataTable();
    
    ds.Tables.Add(dt1);
    ds.Tables.Add(dt2);
    

    希望有帮助:)

    【讨论】:

    • 是的,我可以在 1 个数据集中添加两个表,但我的数据无法正确加载到表中,例如我可以分别加载2个表并成功加载到每个表中,但是当我组合成1个有2个表的数据集时,它只能成功加载第2个表数据,而第1个表数据无法加载到它上面.. ..我需要使用“清除”吗?
    【解决方案2】:

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

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

    【讨论】:

    • 如果我没有相同的列名和相同的列号?是的,我可以在 1 个数据集中添加两个表,但我的数据无法正确加载到表中,例如我可以分别加载2个表并成功加载到每个表中,但是当我组合成1个有2个表的数据集时,它只能成功加载第2个表数据,而第1个表数据无法加载到它上面.. ..我需要使用“清除”吗?
    • @iop 如果我没有相同的列名和相同的列号?
    • 我已经按照上面的方法编辑了我的代码,我无法为第一个表添加我的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2020-10-10
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多