【问题标题】:sql statement error displaying valuessql语句错误显示值
【发布时间】:2016-11-29 22:33:51
【问题描述】:

我需要有关 sql 语句的帮助。

我正在管理一个房地产数据库。我有一张桌子属性和多张桌子卧室、浴室等。

我有一个表单,我的代理可以在列表框中看到所有属性,选择他喜欢的一个,它将在所有组合框中显示正确的信息

每个条件都显示在一个组合框中。因此,如果您显示属性 1,您会看到:卧室:1 卧室

现在我的sql语句是:

   "SELECT AreaSize.AreaSizeID, AreaSize.DescriptionSurface, Bathrooms.BathroomID, Bathrooms.DescriptionBathroom, Cities.CityID, Cities.DescriptionCities, Prices.PriceID, Prices.DescriptionPrices, Properties.*, Rooms.RoomID, Rooms.DescriptionRooms, Types.TypeID, Types.DescriptionType, Users.* FROM Users INNER JOIN (Types INNER JOIN (Rooms INNER JOIN (Prices INNER JOIN (Cities INNER JOIN (Bathrooms INNER JOIN (AreaSize INNER JOIN Properties ON AreaSize.AreaSizeID = Properties.AreaSize) ON Bathrooms.BathroomID = Properties.Bathrooms) ON Cities.CityID = Properties.City) ON Prices.PriceID = Properties.Price) ON Rooms.RoomID = Properties.Rooms) ON Types.TypeID = Properties.PropertyType) ON Users.UserID = Properties.AgentID WHERE Users.email =@email";


我如何在组合框中显示:

cboBedrooms.Text = tbListing.Rows[idx]["DescriptionRooms"].ToString();

问题是现在它只显示所选属性的值,而不是所有其他值。

如果我在属性 2 中,卧室组合框仅显示:2 间卧室
它应该显示:2 间卧室,而不是单击箭头并显示 1 间卧室

+-----------------------------------------+
|    Properties                           |
+------------+------------+---------------+
| PropertyID | NbBedrooms | AgentID...    |
| 1          | 1          |  2...         |
| 2          | 2          |   1...        |
+------------+------------+------------+
+-------------------------+
|    Bedrooms             |
+------------+------------+
| PropertyID | NbBedrooms |
| 1          | 1bedroom   |
| 2          | 2bedrooms  |
+------------+------------+

【问题讨论】:

    标签: c# sql ado.net


    【解决方案1】:

    您的问题是您只设置了 ComboBox 的文本,而不是您可以从中选择的实际项目集合。要实现这一点,只需循环您的 DataTable 对象,并为每个选项添加一个新项目到 ComboBox

    foreach (DataRow row in tbListing.Rows)
    {
        cboBedrooms.Items.Add(row["DescriptionRooms"].ToString();
    }
    

    然后,一旦您填充了 Items 集合,您就可以将 ComboBoxSelectedItem 属性设置为该属性的当前设置值,以便在用户可能进行更改之前向您显示该值是什么.

    因此,如果您的循环要通过并用值 A, B, C, D 填充您的 ComboBox,并且您想将所选值设置为 B,您只需这样做:

    cboBedrooms.SelectedItem = "B";
    

    如果要更进一步,您可能需要将用户选择的新值写回数据库,以便他们进行更改。要获取 ComboBox 的选定值,您可以简单地使用相同的 SelectedItem 属性和 .ToString() 后缀。

    注意:SelectedItem 属性获取并设置object 的类型。看到你只使用字符串,可以做一个简单的.ToString() 来获取选定的值,但如果你想使用更复杂的对象,你必须先转换为该对象,然后检索该值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-06
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      相关资源
      最近更新 更多