如何从 Access 数据库中检索某些数据并将它们显示在组合框中
Posted
技术标签:
【中文标题】如何从 Access 数据库中检索某些数据并将它们显示在组合框中【英文标题】:How to retrieve certain data from Access Database and display them in a combobox 【发布时间】:2013-12-11 09:21:47 【问题描述】:我曾尝试在 MSDN 论坛上发布此问题,但是没有成功。
我正在尝试为将管理其员工的企业制作 C# Windows 窗体应用程序。该应用程序使用 Access 2010 数据库。编辑员工页面是我遇到的问题。我希望员工能够从以下格式的组合框中选择:
名字姓氏,员工职位
数据库名称是 EmployeeInformation.accdb 我想从数据库中获得的字段是:
名字 姓氏 员工职位组合框的名称是 cboSelectEmp
我用来尝试获取此数据的当前代码是
private void LoadDataToCbo()
string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=EmployeeInformation.accdb";
// string query = @"SELECT FirstName from Employees";
string query =
@"SELECT EmpID, LastName + ', ' + FirstName + ' (' + EmployeePosition + ')' as Name FROM Employees";
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);
DataTable source = new DataTable();
dAdapter.Fill(source);
cboSelectEmp.DataSource = source;
//cboSelectEmp.ValueMember = "FirstName";
//cboSelectEmp.DisplayMember = "FirstName";
cboSelectEmp.DisplayMember = "Name";
cboSelectEmp.ValueMember = "EmpID";
【问题讨论】:
【参考方案1】:您不能在组合框中显示多个列,但请尝试使用类似的查询
select EmpID, LastName + ', ' + FirstName + ' (' + EMployeePosition + ')' as Name from Employees
然后设置你的组合框
cboSelectEmp.DataSource = dt; //dt is the datatable where the result of the query resides
cboSelectEmp.DisplayMember = "Name";
cboSelectEmp.ValueMember = "EmpID";
【讨论】:
此代码在 dAdapter.Fill(source) 上给出错误; System.Data.dll 中出现“System.Data.OleDb.OleDbException”类型的未处理异常附加信息:没有为一个或多个必需参数提供值。 哦,对不起!我不再使用 Access db 了,我忘记了,请将 PLUS (+) 符号替换为 AMPERSAND (&) 作为这样的连接符 [select EmpID, LastName & ', ' & FirstName & ' (' & EMployeePosition & ' )' 作为员工姓名]【参考方案2】:试试这个
private void LoadDataToCbo()
string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=EmployeeInformation.accdb";
// string query = @"SELECT FirstName from Employees";
string query =
@"SELECT EmpID, LastName & ', ' + FirstName & ' (' & EmployeePosition & ')' as Name FROM Employees";
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);
DataTable source = new DataTable();
dAdapter.Fill(source);
cboSelectEmp.DataSource = source;
//cboSelectEmp.ValueMember = "FirstName";
//cboSelectEmp.DisplayMember = "FirstName";
cboSelectEmp.DisplayMember = "Name";
cboSelectEmp.ValueMember = "EmpID";
【讨论】:
以上是关于如何从 Access 数据库中检索某些数据并将它们显示在组合框中的主要内容,如果未能解决你的问题,请参考以下文章
如何从数据库中检索单个字段数组数据并将它们分开 - 使用 laravel,PHP
无法从 Access DB 查询中检索数据到我的 VB 程序
Swift - 如何从 Firebase 检索多个值并将它们显示在 UITABLEVIEW