【发布时间】:2012-08-31 12:40:03
【问题描述】:
用户必须从下拉列表中选择一个值,然后应从数据库中提取数据并将其放入页面上的标签(即书名、作者、评级、评论)。
这是我目前所拥有的,但它不起作用:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (IsPostBack)
{
OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["RegConnectionString"].ConnectionString);
con.Open();
OleDbCommand cmdReade = new OleDbCommand();
OleDbDataReader reader = null;
OleDbCommand cmdSelect = new OleDbCommand(@"SELECT * FROM Books WHERE bookName = '" + DdlSelectBook.SelectedItem.ToString() + "'");
while (reader.Read())
{
lblBookName.Text = reader["bookName"].ToString();
lblAuthor.Text = reader["Author"].ToString();
lblRating.Text = reader["Rating"].ToString();
lblComments.Text = reader["Comments"].ToString();
}
}
}
数据库表是BookName、Author、Rating、Comments,另外还有一个应该从项目中的文件夹中显示的图像与所显示的书籍相匹配。
我的代码有什么问题?
【问题讨论】:
-
定义“它不起作用”。它以什么方式不起作用?观察到的行为如何以及何时偏离预期行为?
-
当从列表中选择一个项目时,它不会显示/填充标签,它们只是保持空白。
-
发生这种情况时正在执行什么数据库查询?是否有任何记录被退回?我的第一个猜测是您可能正在重新设置
Page_Load上下拉列表的值,但如果没有看到该代码,我无法确定。另外,出于好奇,为什么要循环设置标签?他们只会显示最后一条记录。如果您只想查看最后一条记录,请仅选择该记录。循环遍历您将要忽略的内容是没有意义的。 -
您遇到了什么问题?您是否调试并检查过值?
-
页面加载代码是空的,里面什么都没有,我真的很菜鸟,所以嗯,是的,这就是我目前拥有的所有代码,当你说循环是 while(reader .Read()) 语句?
标签: c# asp.net drop-down-menu oledb datareader