首页 > 解决方案 > 从数据库中搜索记录并在文本框和下拉列表中显示值

问题描述

下面是我的搜索按钮代码。当我搜索学生的记录时,该值显示在文本字段中,但不显示在下拉列表中。这是什么原因?

SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Final Project\FinalProject\FinalProject\App_Data\Record.mdf;Integrated Security=True;User Instance=True");

try
{
    string query = "select * from student where StdId='" + txtID.Text + "'";
    SqlCommand com = new SqlCommand(query, con);
    SqlDataReader reader = null;

    con.Open();
    reader = com.ExecuteReader();
    if (reader.Read())
    {
        txtfirstname.Text = reader.GetValue(3).ToString();
        txtlastname.Text = reader.GetValue(4).ToString();
        txtfaname.Text = reader.GetValue(5).ToString();
        txtfcellno.Text = reader.GetValue(6).ToString();
        txtfnic.Text = reader.GetValue(7).ToString();
        txthome.Text = reader.GetValue(8).ToString();

        drpclassno.Text = reader.GetValue(9).ToString();
        drpgender.Text = reader.GetValue(10).ToString();
        drpday.Text = reader.GetValue(11).ToString();
        drpmonth.Text = reader.GetValue(12).ToString();
        drpyear.Text = reader.GetValue(13).ToString();
    }
    else
    {
        lblmsg.Text = "Record was not Found...!";
    }

标签: c#database

解决方案


这里使用的技术似乎是 ASP.NET,因为DropDownList在 Windows Forms/WPF 中称为ComboBox.

您分配不在列表源中的值。

要给 a 赋值,DropDownList它必须在它的DataSource:

drpclassno.DataSource = new List<string> { "1", "2", "3" };
drpclassno.DataBind();
drpclassno.Text = "3"; // Works, because its in the Source

drpclassno.DataSource = new List<string> { "1", "2", "3" };
drpclassno.DataBind();
drpclassno.Text = "4"; // Does not work

您也可以使用SelectedValue属性而不是Text使您的意图更清晰。


推荐阅读