gpt4 book ai didi

c# - 使用 SQL Server 数据库中的数据在文本框中自动完成

转载 作者:行者123 更新时间:2023-11-30 23:29:48 24 4
gpt4 key购买 nike

我正在尝试让我的文本框在用户输入文本框以编写查询时自动完成。这类似于 SQL Server Management Studio 的操作方式,并在您键入向下箭头或单击表名或列名时提供选项。这是我的以下代码。

public void loadData()
{
var myConnection = new SqlConnection(DBConnectionBox.Text);
myConnection.Open();

AutoCompleteStringCollection namesCollection = new AutoCompleteStringCollection();
string query = @"Select distinct [name] from [INFORMATION_SCHEMA.TABLES]";

SqlCommand cmd = new SqlCommand(query, myConnection);

SqlDataReader dr = cmd.ExecuteReader();

if (dr.HasRows == true)
{
while (dr.Read())
namesCollection.Add(dr["name"].ToString());
}

dr.Close();
myConnection.Close();

ManualQueryBox.AutoCompleteMode = AutoCompleteMode.Append;
ManualQueryBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
ManualQueryBox.AutoCompleteCustomSource = namesCollection;
}

private void ManualQueryBox_KeyUp(object sender, KeyEventArgs e)
{
loadData();
}

这是我用来获取文本框中的内容并执行它的代码。

private void ExecuteBtn_Click(object sender, EventArgs e)
{
this.ClientInfoDGV.DataSource = null;
this.ClientInfoDGV.Rows.Clear();

var myConnection = new SqlConnection(DBConnectionBox.Text);

var ManualCmd = new SqlCommand(ManualQueryBox.Text);
ManualCmd.Connection = myConnection;
ManualCmd.CommandType = CommandType.Text;

SqlDataAdapter SqlAdap = new SqlDataAdapter(ManualCmd);
DataTable MQRecord = new DataTable();
SqlAdap.Fill(MQRecord);

ClientInfoDGV.DataSource = MQRecord;
}

我以前从未做过自动填充,但环顾四周,我看到了一些 asp.net AJAX 控件工具包,但我不完全确定它们是如何工作的。欢迎任何帮助。

更新自动填充代码

public void loadData()
{
var myConnection = new SqlConnection(DBConnectionBox.Text);
myConnection.Open();
AutoCompleteStringCollection namesCollection = new AutoCompleteStringCollection();
string query = @"Select distinct [Id] from [Clients]";
SqlCommand cmd = new SqlCommand(query, myConnection);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows == true)
{
while (dr.Read())
namesCollection.Add(dr["id"].ToString());

}

dr.Close();
myConnection.Close();

ManualQueryBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
ManualQueryBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
ManualQueryBox.AutoCompleteCustomSource = namesCollection;
}

最佳答案

尝试更改自动完成模式以建议附加:

ManualQueryBox.AutoCompleteMode=AutoCompleteMode.SuggestAppend;

我认为你不需要每次在按键事件中加载数据,只要你加载一次(可能是表单加载)并指定文本框的来源即可。

这可能有帮助:https://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.autocompletemode(v=vs.110).aspx

关于c# - 使用 SQL Server 数据库中的数据在文本框中自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35236497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com