将数据数组添加到多个数据库的下拉列表中
本文关键字:数据库 下拉列表 数据 数组 添加 | 更新日期: 2023-09-27 18:20:58
我有一个有趣的问题。我正在编写一个应用程序,它在C:''中搜索遵循相同命名约定的文件夹。找到文件夹后,应用程序需要进入文件夹中的数据库并提取一位数据。该数据应添加到列表框或下拉列表中。以下是我到目前为止所拥有的,它正确地抓取了一个文件夹。。。。但不是所有具有相同命名约定的文件夹。我相信是
profselect.Text = reader[0].ToString();
行,但不确定。
目标是,我有4个不同的文件夹,它们的名称像Rameses-100、Rameses-101等等。每个文件夹都包含自己的Ramdata.mdb。其中mdb是我希望在profselect下拉框中列出的名称。再往前走,用户将能够使用框中列出的名称切换到所选数据集。目前,如果我运行这个,它只会把其中一个文件夹ramdata-info放在盒子里。我想要多一个。
string directory = @"C:'";
string[] folders = Directory.GetDirectories(directory, "Rameses-*");
foreach (string foldername in folders)
{
var myDataTable = new System.Data.DataTable();
using (var conection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + "data source="+foldername+"''Program''Ramdata.mdb;Jet OLEDB:Database Password=****"))
{
conection.Open();
var query = "Select u_company From t_user";
var command = new System.Data.OleDb.OleDbCommand(query, conection);
var reader = command.ExecuteReader();
while (reader.Read())
profselect.Text = reader[0].ToString();
conection.Close();
}
您的问题还不够清楚,但我们可以说上面的代码是有效的。
您希望在每次预成型此操作时添加结果(我想是这样)
再次假设您使用的是windows窗体
在你的表格上放一个组合框。
然后,在预形成操作时,您需要保留一个列表,列出之前得到的内容,然后将其用作comboBox的dataSource。下面的代码演示了这一点:
List<string> dataList = new List<string>(); // this line is global not inside a closed scoop
var myDataTable = new System.Data.DataTable();
using (var conection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + "data source="+foldername+"''Program''Ramdata.mdb;Jet OLEDB:Database Password=****"))
{
conection.Open();
var query = "Select u_company From t_user";
var command = new System.Data.OleDb.OleDbCommand(query, conection);
var reader = command.ExecuteReader();
while (reader.Read())
{
profselect.Text = reader[0].ToString();
dataList.Add(profselect.Text);
}
}
myComboBox.DataSource = dataList;
myComboBox.SelectedText = dataList.Last();
就我所能提供的信息而言。