什么,我从你的问题的理解,你想创建一个自动完成像谷歌网站确实,是吗?在这种情况下,我写了示例代码,此代码的工作方式类似于auto complete,它会自动填充存储在数据库中的剩余方框。
Manager类:
private static string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database/Health.accdb";
public static void AutoComplete(AutoCompleteStringCollection _collections)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
string query = "SELECT DISTINCT [Description] FROM [Database] ORDER BY [Description] ASC";
connection.Open();
using (OleDbCommand command = new OleDbCommand(query, connection))
using (OleDbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
_collections.Add(reader["Description"].ToString());
}
reader.Close();
}
connection.Close();
}
}
public static void GetData(TextBox _windowsTextBox1, TextBox _windowsTextBox2, TextBox _windowsTextBox3, NumericUpDown _numericUpDown1)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
string query = "SELECT [ProductCode], [Description], [Quantity], [Price] FROM [Database] WHERE [Description] = @Description";
connection.Open();
using (OleDbCommand command = new OleDbCommand(query, connection))
{
command.Parameters.Add("@Description", OleDbType.VarChar);
command.Parameters["@Description"].Value = _windowsTextBox1.Text;
using (OleDbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
string productCode = (string)reader["ProductCode"];
string description = (string)reader["Description"];
UserInformation.Description = description;
int quantity = (int)reader["Quantity"];
int price = (int)reader["Price"];
_windowsTextBox2.Text = productCode;
_windowsTextBox3.Text = Convert.ToString(price);
_numericUpDown1.Maximum = Convert.ToDecimal(quantity);
}
reader.Close();
}
}
connection.Close();
}
}
实例形式:
private void AutoComplete()
{
AutoCompleteStringCollection _dataCollections = new AutoCompleteStringCollection();
Manager.AutoComplete(_dataCollections);
textBox2.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox2.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox2.AutoCompleteCustomSource = _dataCollections;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
Manager.GetData(this.textBox2, this.textBox1, this.textBox3, this.numericUpDown1);
}
这里是结果:
五月这个答案会帮助你!
干杯!
加载标签的代码在哪里? – andy