【问题标题】:how to write sql statement in c# to join data如何在c#中编写sql语句来连接数据
【发布时间】:2014-05-07 06:41:08
【问题描述】:

我正在尝试连接来自不同表的数据并在数据网格中显示它们,但出现错误。

我正在尝试从这些表格中获取此信息。顺便说一句,用户需要输入他的 id。

预订

更新

" + this.UserID + " 是用户的实际ID (int)

bookingID : 1 (int)

bookID : 3 (int)

用户ID:1(整数)

用户

姓名:杰克(字符串)

姓氏:琼斯(字符串)

书籍

NameOfTheBook:指环王(字符串)

结束结果

1, 3, 1 Jack Jones,指环王(在数据网格表中)

string Query = 
    "SELECT bookingID, bookID, userID, Name, LastName, NameOfTheBook " + 
    "FROM Reservations, Users, Books "+
    "WHERE userID = " + thisUserID.Text + 
    " AND Users.ID = " + thisUserID.Text + 
    " AND Books.ID = " + thisUserID.Text + "";

错误 至少有一个所需参数的值尚未确定

我该如何解决?

【问题讨论】:

  • 你需要查看Joins
  • 您的表格中似乎缺少某些字段。是否有 USERS.userID 和 BOOKS.bookID?如果是这样,我会修改查询,以便您根据这些值将这三个表连接在一起。
  • @STLDeveloper 不,他们不是。它们只存在于预订下,但我不知道如何以不同的方式进行。有什么建议吗?
  • 您是否查看过 Reservations 表中 bookID 和 UserID 的现有值? bookID 是否可能实际上是 Books.NameOfTheBook 而 userID 是 Users.Name?也许您还没有发现数据库中的另一个表。
  • 按照@KevinKunderman 所说的去做。阅读有关连接的链接,它会让您更好地了解如何构建表格以促进将表格连接在一起。

标签: c# mysql select jointable


【解决方案1】:

单步执行并查看 Query 的计算结果。我怀疑可能是您没有链接到正确的字段。

应该读得更像这样吗? :

string Query = 
"SELECT bookingID, bookID, userID, Name, LastName, NameOfTheBook " + 
"FROM Reservations, Users, Books "+
"WHERE userID = " + thisUserID.Text + 
" AND Users.ID = Reservations.userID"
" AND Books.ID = Reservations.bookID";

如果 userID 是一个文本字段,那么您必须使用三引号而不是单引号才能正确包装 userID。

【讨论】:

  • 如果 thisUserID.Text 的值始终是数字,则引号无关紧要。另外,总是一个问题,我认为您需要在 SQL 查询中使用单引号(您的解决方案使用双引号 - 正确的轨道!)我认为这是引号以外的问题,因为另一个用户发布的确实应该是此查询中使用了一些连接。没有样本数据很难测试。
  • 刚刚意识到完全相同的事情并进行了相应的编辑。在不知道用户 ID 是什么数据类型的情况下,没有什么可做的。
  • @fkr,您需要另外两个表上的 ID 才能链接到它们。请务必查看问题 cmets 中链接的有关联接的文章,因为它不仅是您要实现的目标的基础,而且对于一般使用关系表也是如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多