显示值的sql语句错误

时间:2016-11-29 22:33:51

标签: c# sql ado.net

我需要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  |
+------------+------------+

1 个答案:

答案 0 :(得分:1)

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

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

然后,当您填写Items集合后,您可以将SelectedItem的{​​{1}}属性设置为等于该属性的当前设置值,以向您的用户显示该值的值在他们可能做出改变之前。

因此,如果您的循环通过并使用值ComboBox填充ComboBox,并且您希望将所选值设置为A, B, C, D,那么您只需执行以下操作:

B

为了更进一步,您可能希望将用户选择的新值写回数据库,如果他们想要进行更改。要获取cboBedrooms.SelectedItem = "B"; 的选定值,您只需使用相同的ComboBox属性,并在其中添加SelectedItem后缀。

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