1

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

这是我到目前为止所拥有的,但它不起作用:

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, 加上应该从项目中的文件夹中显示的图像与显示的书相匹配。

我的代码有什么问题?

4

2 回答 2

5

问题是你的reader is null. Setreader = SqlCommand.ExecuteReader()

例子:

reader = cmdReade.ExecuteReader(); 
于 2012-08-31T12:51:53.490 回答
1

你错过了

reader =cmdSelect.ExecuteReader();  
于 2012-08-31T12:54:54.513 回答