如何从 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

如何定期将 MS Access 数据加载到 Azure SQL 中?

从 API 检索数据并将它们传递到 Vuetify 表中

ASP.NET - VB.NET - 从 MS-Access 数据库中检索记录