如何在OLE DB查询中连接Combobox C#中的显示成员中的两个字段

时间:2015-02-07 15:35:35

标签: c# asp.net combobox oledb

我是OLEDB的新手。我在组合框上显示项目时遇到问题。

这是我的代码。

string strCon = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\database\database.accdb;Persist Security Info=False";

        try
        {
            using (OleDbConnection conn = new OleDbConnection(strCon))
            {
                conn.Open();
                string strSql = "SELECT * FROM Instructor";
                OleDbDataAdapter adapter = new OleDbDataAdapter(new OleDbCommand(strSql, conn));
                DataSet ds = new DataSet();
                adapter.Fill(ds);

                cboInstructor.DataSource = ds.Tables[0];
                cboInstructor.DisplayMember = "LastName";
                cboInstructor.ValueMember = "ID";
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

在Combobox中显示一个项目工作正常。 但我想在组合框上显示连接的项目。

我试过这样的事情,但我不行。

cboInstructor.DisplayMember = "LastName,FirstName";

cboInstructor.DisplayMember = "LastName" + "," + "FirstName";

此外,在查询中我尝试了这个。

string strSql = "SELECT ID, LastName + ', ' + FirstName  AS 'Name' FROM Instructor";

cboInstructor.DisplayMember = "Name";

我试过了两个但它不起作用。请帮我。我需要显示或连接两列。

2 个答案:

答案 0 :(得分:0)

我通常这样做是用我想要的东西创建一个类:

public class DisplayPerson
{
     public int ID {get;set;}
     public string FullName {get;set;}
}

然后我会创建一个List并使用数据表来填充它。然后使用List填充ComboBox。

答案 1 :(得分:0)

我不是C-progtrammer,所以我不能提供一些小贴士。

您的SQL语句应该可以使用 SELECT LastName +','+ Firstname as Commonname FROM YourDB

小心有时你应该使用&而不是+和“而不是'

另一种方式可能是计算字段: 1.在表或数据集中添加新字段 2.选择oncalcfields事件,您可以在其中计算字段的值 newfield = firstname +','+ lastname