C# DataReader+DropDownList ASP.NET项目

C# DataReader+DropDownList ASP.NET项目,c#,asp.net,drop-down-menu,oledb,datareader,C#,Asp.net,Drop Down Menu,Oledb,Datareader,用户必须从下拉列表中选择一个值,然后从数据库中提取数据并放入页面上的标签,即书名、作者、评级、评论 这是我迄今为止所做的,但它不起作用: protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { if (IsPostBack) { OleDbConnection con = new OleDbConnection(ConfigurationManager.Conn

用户必须从下拉列表中选择一个值,然后从数据库中提取数据并放入页面上的标签,即书名、作者、评级、评论

这是我迄今为止所做的,但它不起作用:

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,另外还有一个图像,该图像应该显示在项目中与所显示的书籍相匹配的文件夹中

我的代码有什么问题?

问题是您的读卡器为空。 Set reader=SqlCommand.ExecuteReader

例如:

reader = cmdReade.ExecuteReader(); 
问题是你的阅读器是空的。 Set reader=SqlCommand.ExecuteReader

例如:

reader = cmdReade.ExecuteReader(); 
你错过了

reader =cmdSelect.ExecuteReader();  
你错过了

reader =cmdSelect.ExecuteReader();  

定义它不起作用。它以什么方式不起作用?观察到的行为如何以及何时偏离预期行为?当从列表中选择一个项目时,它不会显示/填充标签,只是保持空白。发生这种情况时,将执行什么数据库查询?甚至有任何记录被退回吗?我的第一个猜测是,您可能正在设置Page_Load上下拉列表的值,但如果没有看到该代码,我无法确定。另外,出于好奇,为什么要将标签设置为循环?他们只会播放最后一张唱片。如果只想查看最后一条记录,请仅选择该记录。没有任何意义,在你将要忽略的东西中循环。你遇到了什么问题?你调试并检查了值吗?页面加载代码是空的,里面没有任何内容,我真的不知道,所以嗯,是的,这是我目前所有的代码,当你说循环是whilereader。Read语句?Define它不起作用。它以什么方式不起作用?观察到的行为如何以及何时偏离预期行为?当从列表中选择一个项目时,它不会显示/填充标签,只是保持空白。发生这种情况时,将执行什么数据库查询?甚至有任何记录被退回吗?我的第一个猜测是,您可能正在设置Page_Load上下拉列表的值,但如果没有看到该代码,我无法确定。另外,出于好奇,为什么要将标签设置为循环?他们只会播放最后一张唱片。如果只想查看最后一条记录,请仅选择该记录。在你将要忽略的东西中循环毫无意义。你遇到了什么问题?你调试并检查了值吗?页面加载代码是空的,里面什么都没有,我真的不知道,所以嗯,是的,这是我目前所有的代码,当你说循环就是whilereader。阅读语句?@Nirre欢迎。请把它作为你的答案。投票按钮下方有一个勾号。单击它接受它作为您的答案。@nire欢迎。请把它作为你的答案。投票按钮下方有一个勾号。点击它接受它作为你的答案。