不好意思,上面的注释应该有错误,应该是:
if (hotelName == "")//如果未填写酒店名称,根据城市进行检索
        { 
            this.SqlDataSource1.SelectCommand = "SELECT [HotelName], [CityName], [HotelAddress], [PhoneNum], [HotelInfo], [Charge] FROM [HotelsInfo] WHERE ([CityName]=@CityName)"; 
      } 
        else//根据酒店名称和城市进行检索
        { 
            this.SqlDataSource1.SelectCommand = "SELECT  [CityName],[HotelName], [HotelAddress], [PhoneNum], [HotelInfo], [Charge] FROM [HotelsInfo] WHERE ([HotelName] = @HotelName AND [CityName]=@CityName)"; 
        } 

解决方案 »

  1.   

    好吧,简而言之,就是要实现一个酒店检索的功能。然后再检索页面(Hotels.aspx)上有城市(RadioButtonList)和酒店名称(TextBox)的控件,和一个提交按钮。(酒店名称是可选填的)
    而在检索结果页面(HotelDetail.aspx)上,则有一个DetailsView控件。
    当用户进行检索并按下检索按钮时时,若用户没有填写酒店名称时,则检索出该城市所有的酒店,显示在DetailsView中;当用户填写酒店名称时,则根据酒店名称与城市两项进行检索。在检索结果(aspx)页面中我未指定数据源(SqlDataSource)的SelectCommand的值。而是在cs文件的Page_Load函数中指定的(具体代码见2楼)。在实际操作中的问题是:若在检索页(Hotels.aspx)中未指定酒店名字的话,该检索结果页面中的DetailsView中无任何结果。而指定了酒店名字的话,则会在DetailsView中显示酒店信息。 为什么未指定酒店名称时,根据城市名称检索时无结果呢?而在根据酒店名称检索时却正常呢?(数据库中数据都没有问题,HotelName是主键)请高手指教!