我有一个包含两列名为StudentId和name的表,我正在尝试将name列绑定到一个下拉列表控件,该控件使用下面的代码。
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
fillStudentName();
}
void fillStudentName() {
SqlConnection con = new SqlConnection(@"server=.\sqlexpress;database=Projects;UID=sa;Password=1234");
SqlCommand cmd = new SqlCommand("select name from StudentInfo", con);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);
ddlstudent.DataSource = ds.Tables[0];
ddlstudent.DataTextField = "Name";
ddlstudent.DataBind();
}
问题在于我将此行添加到代码中。
// ddlstudent.DataValueField = "StudentId";->>this part throws exception
我在下面得到了这个例外。
DataBinding:'System.Data.DataRowView'不包含名为'StudentId'的属性。
但是这个字段存在,我已经仔细检查了这个名字。
我做错了什么?
答案 0 :(得分:2)
...不包含名为“StudentId”的属性
错误不言自明,您忘记选择此字段。所以从:
更改sql查询select Name from StudentInfo
到
select Name, StudentId from StudentInfo
另外,方法名称fillStudentName
已过时。它应该重命名为DataBindDdlStudent
或类似的东西。