C# 如何在文本框中检索组合框中选定项的记录
我想通过在组合框中选择的名称显示该成员的所有详细信息..我正在尝试下面给定的代码C# 如何在文本框中检索组合框中选定项的记录,c#,combobox,C#,Combobox,我想通过在组合框中选择的名称显示该成员的所有详细信息..我正在尝试下面给定的代码 private void cbSearchByName_SelectedIndexChanged(object sender,EventArgs e) { try { //int RowsAffected = 0; DataAccess oDataAccess = new DataAccess(); c
private void cbSearchByName_SelectedIndexChanged(object sender,EventArgs e)
{
try
{
//int RowsAffected = 0;
DataAccess oDataAccess = new DataAccess();
con.Open();
//showing flat number of selected member by name
oDataAccess.cmd.CommandText = "SELECT FlatNo FROM MemberInfo where MemberName='" + cbSearchByName.Text + "'";
oDataAccess.cmd.Connection = con;
tbOwnerName.Text = ((string)cmd.ExecuteScalar());
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
我知道您需要从memberinfo表中获取所有列记录并在UI中显示它们。为此,您需要使用ExecuteReader而不是ExecuteScalar。我已经用下面的代码实现了executereader
private void cbSearchByName_SelectedIndexChanged(object sender,EventArgs e)
{
try
{
//int RowsAffected = 0;
DataAccess oDataAccess = new DataAccess();
using(SqlConnection connection = con )
{
connection.Open();
//showing flat number of selected member by name
oDataAccess.cmd.CommandText = "SELECT Top 1 Name,City FROM MemberInfo where MemberName='" + cbSearchByName.Text + "'";
oDataAccess.cmd.Connection = con;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
tbOwnerName.Text = dr["Name"].ToString();
tbOwnerCity.Text = dr["City"].ToString();
//similarly store other column values in respective text boxes or wherever you need to get it displayed.
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
你有什么例外吗?运行代码时会发生什么?结果如何。事实上,你到底有什么问题?这意味着在会员详细信息表单上,通过组合框选择会员的姓名,该姓名的相应数据应显示在各自的文本框中…谢谢帮助…我尝试了你的代码,但现在当我从组合框中选择姓名时,它会显示类似的消息“连接未关闭。连接当前状态为打开”类似于此的内容此错误可能是由于无法执行代码con.Close();我不确定上述代码是否有任何错误。请在con.open()和con.Close()保留一些断点,然后检查这些语句是否正在执行。能否显示完整的错误消息?