【问题标题】:How to bind table data to Drop Down List?如何将表格数据绑定到下拉列表?
【发布时间】:2015-03-14 19:02:10
【问题描述】:

我尝试将 tblState 数据绑定到下拉列表,但数据无法绑定。 我收到类似

的错误

DataBinding:“System.Data.DataRowView”不包含属性 名称为“@StateName”。

获取状态的存储过程

CREATE PROCEDURE GetStates
as
select * from tblState

来源

public DataTable GetStates()
{
    cmd = new SqlCommand("GetStates", con);
    cmd.CommandType = CommandType.StoredProcedure;
    da = new SqlDataAdapter(cmd);
    dt = new DataTable();
    da.Fill(dt);
    return dt;
}

aspx 页面

Property p = new Property();

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        FillStates();
    }
}

private void FillStates()
{
    ddlState.DataSource = p.GetStates();
    ddlState.DataTextField = "@StateName";
    ddlState.DataValueField = "@Sid";

    ddlState.DataBind();
    ddlState.Items.Insert(0, "Select State");
}

【问题讨论】:

  • 为什么是@StateName?没有@ like StateName 应该很好
  • 谢谢先生,错误已解决

标签: c# asp.net


【解决方案1】:

我认为您提供的是过程参数名称(@statename)而不是列名。您应该将 datatextfield 和 valuefield 属性设置为与过程返回的数据表包含的相同列名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多