【问题标题】:How to add data from 2 tables into one using access database in c# wpf如何在c# wpf中使用access数据库将2个表中的数据添加到一个表中
【发布时间】:2014-05-06 02:58:52
【问题描述】:

我正在尝试将数据库中两个表中的数据添加到一个表中,但我在代码中遇到了一些困难。我需要为用户创建一个预订火车票的选项,并且他们的 ID 和车票的 ID 需要显示在新表中(预订)

这是一个例子:

User:
ID: 5
Name: Jack
Last Name: Jones

Ticket:
ID: 9
Name: London

结果

Booking table:
BookingId: 1
UserId: 5
BookId: 9

这是我目前的代码

try
{
    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = myConnection;
    cmd.CommandText = "SELECT User.ID, Ticket.ID AS Reservation FROM (User INNER JOIN Ticket ON User.ID = Ticket.ID)";
    cmd.CommandText = "INSERT INTO Reservation(ID_user, ID_ticket)" + "values(@User.ID, @Ticket.ID)";
    myConnection.Open();
    cmd.ExecuteNonQuery();
    MessageBox.Show("Ticket added");
    myConnection.Close();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

请帮帮我!

【问题讨论】:

  • 您的第一个CommandText 毫无意义。因为你正在执行第二个。您尝试使用参数化查询,但您从未向 @User.ID@Ticket.ID 添加值。
  • @SonerGönül 我该怎么做?
  • 您将 RESULT 显示为 Booking 表,并在您的代码中插入 Reservation 表。当您尝试在 Reservation 表中插入时,数据是否已经存在于 Booking 表中,或者 Booking 表和 Reservation 表是同一个并且您在输入时输入错误?
  • @samar 我没有犯错。这些甚至不是实际的表名,我只是举了一个例子。不过代码中的名字是对的。
  • 那我请你给出实际的要求,而不是在例子中给出不同的东西,在代码sn-p中给出完全不同的东西。我仍然无法理解您到底需要什么。

标签: c# ms-access select database-design oledb


【解决方案1】:
SELECT User.ID, Ticket.ID AS Reservation FROM (User INNER JOIN Ticket ON User.ID = Ticket.ID)

这里的条件是错误的 userid 和 ticketid 怎么会相等?

【讨论】:

  • 我试图进行查询,但我想我只是不明白,无法正确处理
【解决方案2】:

假设 Booking 表和 Reservation 表是一回事。如果没有,请在此处评论。

如果我正确理解您的业务,首先您不能根据用户表和票证表的 id 进行联接。它们是独立的表,它们之间没有关系。

其次,当用户最终订票时,用户 ID 和票证 ID 都应该在 UI 上可用。

关于用户ID,如果你有一个asp.net应用程序,当她/他登录你的网站时,用户ID将可用,否则如果它是一个Windows应用程序,你可以将它保存在一个公共静态类变量中。

ticketid 将是用户在添加他/她的旅程详情时选择的记录。

您需要选择它们并将其添加到预订表中。

希望这能给你一些方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多