c# - 从数据库中搜索记录并在文本框和下拉列表中显示值
问题描述
下面是我的搜索按钮代码。当我搜索学生的记录时,该值显示在文本字段中,但不显示在下拉列表中。这是什么原因?
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...!";
}
解决方案
这里使用的技术似乎是 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
使您的意图更清晰。
推荐阅读
- r - Shiny Timevis - 改变行名的位置
- powershell - Powershell中的高级CSV过滤?
- reactjs - MUI:如何以编程方式更新 DataGrid 状态?
- php - Laravel Sail:在 docker 容器中运行 Mysql PHP 迁移
- python - 在 Django ORM 中按查询分组
- amazon-web-services - 使用亚马逊网络服务身份验证时出现“无法解析模块,这些文件都不存在错误”
- python - 数据框与自身的相关性
- r - 用于分配 R
- node.js - 验证失败导致崩溃后,在尝试发送另一个(正确)请求之前,需要刷新应用程序
- python - 我的 pygame 菜单不工作,也没有显示在屏幕上