如何使用c#wpf中的access数据库将2个表中的数据添加到一个表中

时间:2014-03-27 08:54:07

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

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

以下是示例:

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

Ticket:
ID: 9
Name: London

RESULT

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);
}

请帮帮我!

2 个答案:

答案 0 :(得分:0)

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

如果我理解您的商家,首先是不能根据其ID在User表和Ticket表上加入。它们是独立的表,它们之间没有关系。

其次,当用户最终预订票证时,UI上的数据即userid和ticketid都应该可用。

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

ticketid将是用户在添加旅程详细信息时选择的记录。

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

希望这会给你一些指导。

答案 1 :(得分:0)

SELECT User.ID, Ticket.ID AS Reservation FROM (User INNER JOIN Ticket ON User.ID = Ticket.ID)

这里的条件是错误的,如何将userid和ticketid相等?