DataList控件的前台定义:    <form id="form1" runat="server">
    <asp:DataList ID="DataList1" runat="server">
    <ItemTemplate>
       <%#Container.DataItem("title")%>
    </ItemTemplate>
    </asp:DataList>
    </form>后台数据绑定:              string strConning = "Data Source=S010;Database=pubs;User ID=sa;password=924864";
                SqlConnection con = new SqlConnection(strConning);
                try
                {
                    con.Open();
                    string strSql = "Select * from Titles";
                    SqlCommand com = new SqlCommand(strSql,con);
                    SqlDataReader reader = com.ExecuteReader();
                    this.DataList1.DataSource = reader;
                    this.DataList1.DataBind();
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }
在运行程序的时候出现下面的错误:
编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS1955: 不能像使用方法那样使用不可调用的成员“System.Web.UI.WebControls.DataListItem.DataItem”。源错误: 行 11:     <asp:DataList ID="DataList1" runat="server">
行 12:     <ItemTemplate>
行 13:        <%#Container.DataItem("title")%>
行 14:     </ItemTemplate>
行 15:     </asp:DataList>后台的程序在没有 <%#Container.DataItem("title")%>的语句是可以运行的.

解决方案 »

  1.   

    永远只需要使用两个:Eval和Bind。特别是Bind,有很多功能,例如自动与数据源控件通讯,这都是必要的。
      

  2.   


    string strConning = "Data Source=S010;Database=pubs;User ID=sa;password=924864";
                    SqlConnection con = new SqlConnection(strConning);
                    try
                    {
                        con.Open();
                        string strSql = "Select * from Titles";
                        SqlCommand com = new SqlCommand(strSql,con);
                        SqlDataReader reader = com.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Load(reader);
    reader.Close();
    con.Close();
                        this.DataList1.DataSource = dt;
                        this.DataList1.DataBind();
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.Message);
                    }
    试一下
      

  3.   

    试试:
    <%# DataBinder.Eval(Container.DataItem,"title")%>
      

  4.   

    呵呵,还是给你个提醒吧。你的写法在vb.net所写的asp.net网页中是可以正常运行的。
      

  5.   

    http://blog.joycode.com/saucer/archive/2004/04/14/19456.aspx
      

  6.   

    要怎么把那条vb语句转换成c#呢