如何在C#DataSet中从一个表中获取数据并添加到另一个表中?

如何在C#DataSet中从一个表中获取数据并添加到另一个表中?,c#,sql-server,xml,C#,Sql Server,Xml,我有一个复杂的xml文件,我读取xml并将数据存储到DataSet对象中。数据集包含以下数据表 1.Customer 2.Operation 3.Account 4.Card Customer DataTable有许多列带有CustomerId和SerialNo。其他DataTable没有公共列。我需要根据SerialNo将CustomerId列值添加到其他(操作、帐户和卡)数据表中,并需要将所有表数据存储到数据库中。我怎样才能做到这一点,请给我举个例子 C#代码: DataSet ds

我有一个复杂的xml文件,我读取xml并将数据存储到DataSet对象中。数据集包含以下数据表

1.Customer
2.Operation 
3.Account 
4.Card
Customer DataTable有许多列带有CustomerId和SerialNo。其他DataTable没有公共列。我需要根据SerialNo将CustomerId列值添加到其他(操作、帐户和卡)数据表中,并需要将所有表数据存储到数据库中。我怎样才能做到这一点,请给我举个例子

C#代码:

 DataSet ds = new DataSet();
        try
        {
            ds.ReadXml(@"D:\Test.xml");               

            DataTable dtstatement = ds.Tables["Statement"];

            foreach (DataRow dr in dtstatement.Rows)
            {
                Statement statement = new Statement();
                statement.IdClient = Convert.ToInt32(dr["IdClient"].ToString());
                statement.StatementNo = Convert.ToInt32(dr["StatementNo"].ToString());

                DataRow[] selectedCards = ds.Tables["card"].Select(string.Format("StatementNo = {0}", statement.StatementNo));
                if (selectedCards.Length > 0)
                {
                    foreach (var item in selectedCards)
                    {
                        Card card = new Card();
                        card.IdClient = statement.IdClient;
                        card.CardNo = item["cardNo"].ToString();
                    }
                }
                DataRow[] selectedAccounts = ds.Tables["Account"].Select("StatementNo = " + statement.StatementNo);
                if (selectedAccounts.Length > 0)
                {
                    foreach (var item in selectedAccounts)
                    {
                        Account account = new Account();
                        account.IdClient = statement.IdClient;
                        account.AccountNo = item["AccountNo"].ToString();
                    }
                }
            }
        }
        catch (Exception ex)
        {

        }
XML:

<?xml version="1.0" encoding="utf-8"?>
<Statements>
 <Statement>
    <StatementNo>1</StatementNo>
    <IdClient>101</IdClient>
    <Cards>
        <card>
            <StatementNo>1</StatementNo>
            <cardNo>123456</cardNo>
        </card>
        <card>
            <StatementNo>1</StatementNo>
            <cardNo>1234567</cardNo>
        </card>
    </Cards>
    <Accounts>
        <Account>
            <StatementNo>1</StatementNo>
            <AccountNo>123456</AccountNo>
        </Account>
        <Account>
            <StatementNo>1</StatementNo>
            <AccountNo>1234567</AccountNo>
        </Account>
    </Accounts>
</Statement>
 <Statement>
    <StatementNo>2</StatementNo>
    <IdClient>102</IdClient>
    <Cards>
        <card>
            <StatementNo>2</StatementNo>
            <cardNo>12345678</cardNo>
        </card>         
    </Cards>
  </Statement>
</Statements>

1.
101
1.
123456
1.
1234567
1.
123456
1.
1234567
2.
102
2.
12345678

请展示示例数据、您的表结构,以及您迄今为止的尝试,帮助我们帮助您更新sql server数据库中的这些表还是仅更新数据集?您好,欢迎来到so。你似乎需要一些帮助。然而,您似乎也忘记了发布有关您的系统或您正在尝试执行的操作的任何详细信息。这是一个很好的起点@Joshua Evensen,我的目标是更新sql server数据库中的这些表。ya,在这个问题上提供更多信息,ppl将更容易提供帮助。另外,我不知道使用System.Data.DataTable这一事实是否真的很重要。您可能只需要运行一个查询来完成您正在谈论的内容。