代码如下:<body>
    <form id="form1" runat="server">
    <asp:TextBox ID="txtConnString" runat="server" Width="387px" Text="Data Source=.;Initial Catalog=JamOA;Persist Security Info=True;User ID=sa;Password=sa"></asp:TextBox>
    <asp:Button ID="btnJoin" runat="server" Text="连 接" onclick="btnJoin_Click" />
    <table cellpadding="0" cellspacing="0" width="100%">
    <tr>
    <td>
    <asp:ListBox ID="lbTableList" runat="server"  DataTextField="Name" DataValueField="Code"></asp:ListBox>
        </td>
    <td>
    <asp:Literal ID="ltr" runat="server"></asp:Literal>
    </td>
    </tr>
    </table>
    </form>
</body>
public partial class _Default : System.Web.UI.Page 
{
    private static DataContext dc;
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void btnJoin_Click(object sender, EventArgs e)
    {
        dc = new DataContext(txtConnString.Text);
        var tableList = dc.ExecuteQuery<MTable>("select sitename as Name ,sitecode as Code  from Inquiry_Site").ToList();
        ltr.Text = tableList[0].Name.ToString();
        lbTableList.DataSource = tableList;
        //lbTableList.DataTextField = "Name";
        lbTableList.DataBind();
    }
}public class MTable
{
    public string Name;
    public string Code;
}运行到 lbTableList.DataBind();  出错~!错误提示: 
DataBinding:“MTable”不包含名为“Name”的属性。
 
但是我跟踪tableList变量里面的MTable是有Name和Code两个属性的。ltr.Text = tableList[0].Name.ToString();也说明了属性是存在的。 
请各位指点一下。 急····

解决方案 »

  1.   

    类MTable里的Name和Code加上 get和set方法 才是属性
      

  2.   

        public class MTable
        {
            private string _Name;
            private string _Code;        public string Name
            {
                get { return _Name; }
                set { _Name = value; }
            }
            public string Code
            {
                get { return _Code; }
                set { _Code = value; }
            }
        }