【发布时间】:2013-12-24 05:02:27
【问题描述】:
当我尝试使用 parse methodint.parse(DataValueField)在方法中使用下拉列表的DataValueField作为输入 int 参数时,它的值应该来自数据库,它给了我这个运行时错误
输入的字符串格式不正确
所以我调试了网站看看问题出在哪里我发现它没有检索到它的值 int itsSelectedIndexChangedmethod ,尽管下拉列表填写了Page_Loadmethod
这里是page_load 方法:
protected void Page_Load(object sender, EventArgs e)
{
writerddl.DataSource = DS.show_all_writers();
writerddl.DataValueField = "writerid";
writerddl.DataTextField = "writersname:;
writerddl.DataBind(); }
这是 SelectedIndexChanged 方法:
protected void writerddl_SelectedIndexChanged(object sender, EventArgs e)
{
writer _writer = DS.select_writer_by_id(int.Parse(writerddl.DataValueField)).Single();
usernametxt.Text = _writer.username;
passwordtxt.Text = _writer.password;
nametxt.Text = _writer.writersname;
}
注意我使用的是 LinQtoSql,所以 DS."method"() 是一个存储过程
【问题讨论】:
-
改用
writerddl.SelectedValue -
嗯...看来我已经在使用它了!看 writer _writer = DS.select_writer_by_id(int.Parse(writerddl.DataValueField)).Single();
-
但我会试试这个好不好
-
成功了!大声笑,但我仍然不明白为什么 writerddl.DataValueField O.o
标签: c# asp.net linq-to-sql