asp.net,我用datalist来实现显示剩余房间书,但是页面就是不显示,,不知道问题在哪里?麻烦各位帮我看一下。
前台代码:
<asp:datalist id="dlt_roomlist" runat="server" CellSpacing="5" 
                                            ShowFooter="False" ShowHeader="False" RepeatDirection="Horizontal" 
                                            RepeatColumns="6" BorderColor="#999999" BorderStyle="None" BackColor="White" 
                                            CellPadding="3" GridLines="Vertical" BorderWidth="1px" DESIGNTIMEDRAGDROP="5" 
                                            
                                            DataSourceID="SqlDataSource1" 
                                            onselectedindexchanged="dlt_roomlist_SelectedIndexChanged">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
<SelectedItemTemplate>
<font face="宋体"></FONT>
</SelectedItemTemplate>
<AlternatingItemStyle BackColor="LightGray"></AlternatingItemStyle>
<ItemStyle ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
<ItemTemplate>
<FONT id="dll" face="宋体"></FONT>
<TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
<TR>
<TD width="12%">
<DIV><FONT color="#000000"><B><font size="5"><%# DataBinder.Eval(Container, "DataItem.RID") %></FONT></B></FONT></DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV><B>类别:</B><%# DataBinder.Eval(Container, "DataItem.TName") %></DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV><B>空房:</B><%# DataBinder.Eval(Container, "DataItem.RState") %></DIV>
</TD>
</TR>
<TR>
<TD width="88%"><%# DataBinder.Eval(Container, "DataItem.RID","<a href=>预定</a>") %></TD>
</TR>
</TABLE>
</ItemTemplate>
<FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#000084"></HeaderStyle>
<EditItemTemplate>
<FONT face="宋体"></FONT>
</EditItemTemplate>
</asp:datalist>
后台代码:
  protected void Page_Load(object sender, EventArgs e)
    {        BindList();
    }
    public void BindList()
    {
        string s = ConfigurationManager.ConnectionStrings["siteconn"].ConnectionString;
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = "Data Source=HP-PC;Initial Catalog=酒店管理系统;Integrated Security=True;User Instance=False";        //创建SqlDataAdapter对象,调用视图
        SqlDataAdapter da1 = new SqlDataAdapter("guestroomleft", conn);
        //创建并填充DataSet
        DataSet ds1 = new DataSet();
        da1.Fill(ds1);
       
        dlt_roomlist.DataBind();
        conn.Close();
    }
    protected void dlt_roomlist_SelectedIndexChanged(object sender, EventArgs e)
    {    }
    protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {    }

解决方案 »

  1.   

     SqlDataAdapter da1 = new SqlDataAdapter("guestroomleft", conn);
    你把鼠标放到SQLDATAADAPTER上,代码提示上显示这个对象的两个参数一个是sql语句,一个是CONNECTION实例化的对象,连SQL语句都没有,你想得到你所谓的“剩余房间”的数据,咋可能么。
      

  2.   


    我的第一个参数guestroomleft是用一个存储过程啊,存储过程的代码如下“
     ALTER PROCEDURE [dbo].[guestroomleft]
        AS SELECT [dbo].[GuestRoom].[RID],
                  [dbo].[GuestRoom].[TID],
                  [dbo].[GuestRoom].[RNumber],
                  [dbo].[GuestRoom].[RDescribe],
                  [dbo].[GuestRoom].[RPosition],
                  [dbo].[RoomType].[TID],
                  [dbo].[RoomType].[TName],
                  [dbo].[GuestRoom].[RState]
        FROM[dbo].[GuestRoom],
        [dbo].[RoomType]
        WHERE [dbo].[GuestRoom].[TID]= [dbo].[RoomType].[TID]
        AND [dbo].[GuestRoom].[RState]='OK'
        
    这样做不对?还要在.cs中邪SQL语句?
      

  3.   

    那你调用存储过程也没有指明啊,最起码也得有一句
    sqlcommand sqlcom=new sqlcomand("guestroomleft", conn);
    然后,
    sqlcom.CommandType=CommandType.StoredProcedure;//这句才能让编译器知道你调用的是存储过程;
    其实调用存储过程和执行SQL语句一样,只不过一个是直接执行,一个是在数据内间接执行。其他步骤请参考访问数据库的步骤,基本一致。
      

  4.   

    把后台代码改为:
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {        BindList();
        }
        public void BindList()
        {
            string s = ConfigurationManager.ConnectionStrings["siteconn"].ConnectionString;
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "Data Source=HP-PC;Initial Catalog=酒店管理系统;Integrated Security=True;User Instance=False";        SqlCommand sqlcom = new SqlCommand("guestroomleft", conn);
            sqlcom.CommandType = CommandType.StoredProcedure;//
            //创建SqlDataAdapter对象,调用视图
            SqlDataAdapter da1 = new SqlDataAdapter("guestroomleft", conn);
            //创建并填充DataSet
            DataSet ds1 = new DataSet();
            da1.Fill(ds1);
           
            dlt_roomlist.DataBind();
            conn.Close();
        }
        protected void dlt_roomlist_SelectedIndexChanged(object sender, EventArgs e)
        {    }
        protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
        {    }
    }
    就可以了。初学asp.net遇到了很多问题。感谢感谢