在文本框中输入一个多数字,无需使用按钮即可自动获得解决方案



我一直在尝试为我的项目创建一个自动解决方案,当我输入数字时,相应的数据会显示在只读文本框中。这个想法与按钮配合使用效果很好,因为输入是一个多数字,当我输入第一个数字时,代码就会调用else函数。

样本dB

b_id                 b_name
1                     Huston
15                    Berlin
06                    Rio

在这里,当我输入第一个b_id时,输出是Huston。第二个自动调用Huston,第三个在我输入第二个数字之前,代码会调用else语句。

private void textBox1_TextChanged(object sender, EventArgs e)
{
.........c#....
SqlDataReader reader;
con.Open();
SqlCommand cmd = new SqlCommand("Select b_id,b_name from branches where b_id=@b_id", con);
cmd.Parameters.AddWithValue("b_id", textBox1.Text);

reader = cmd.ExecuteReader();
try
{
if(reader.Read())
{
label2.Text = reader["b_name"].ToString();
}
else
{
MessageBox.Show("No data was found in this ID");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

您可以如下重写if-else

if(reader.Read())
label2.Text = reader["b_name"].ToString();
else
label2.Text = "No data found!";

每次在文本框中键入字符时都要访问数据库,这不是一个好主意。一个更好的方法可能是@Oliver建议的,或者如果表branches不是那么大,则将所有数据加载到数据表中,并从textchange事件中进行搜索。

相关内容

最新更新