c# WinForm -键和显示值从数据库列的输入文本的基础上
本文关键字:数据库 输入 基础上 文本 WinForm 显示 | 更新日期: 2023-09-27 18:19:17
我用的是c# Window Form。
是这样的场景。
我有一个文本字段,用户可以在其中键入连接到名称的数据库列的单词/字母。当用户键入单词/字母时,下拉将自动显示保存在我的数据库中的名称列中的名称。当我单击与输入文本匹配的名称时,我可以单击它并自动用我选择的名称填充文本字段。
txt_names.Text // The name of my textfield.
private void txt_names_KeyPress(object sender, KeyPressEventArgs e)
{
// I have no codes here.
}
也许最好的方法是使用keypress或keydown之类的。知道如何在数据库中捕获名称吗?这有点像ajax的东西,但在c#窗口窗体。
帮忙吗?请在下面写下你的答案/评论。提前感谢!
我想这会对你有所帮助,在这种情况下,我的方法是AutoCompleteTxtBox()
void AutoCompleteTxtBox()
{
txt_names.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
txt_names.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection coll = new AutoCompleteStringCollection();
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "your connection string";
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from your DataBase table name";
OleDbDataReader myReader = cmd.ExecuteReader();
while (myReader.Read())
{
string lname = myReader["the column name you want to autocomplete"].ToString();
coll.Add(lname);
}
txt_names.AutoCompleteCustomSource = coll;
conn.Close();
}
然后调用表单上有InitializeComponent()方法的方法,像这样
public Form1()
{
InitializeComponent();
AutoCompleteTxtBox();
}
您可以使用组合框控件来实现。只需用字符串列表填充它。
并打开自动完成选项。