我正在尝试在C#中设置ComboBox的.DisplayMember属性,但我想将它绑定到.DataSouce多个列。
我的SQL看起来像这样:
SELECT PersNbr, PersFirstName, PersMiddleName, PersLastName FROM Pers WHERE PersNbr = :persNbr;我将此查询保存在DataTable因此选中的每个列在Datatable都有自己的列。
我想让.DisplayMember成为PersFirstName + PersMiddleName + PersLastName的组合,所以他们的全名如下所示:
comboBox.DisplayMemeber = "PersFirstName" + "PersMiddleName" + "PersLastName"我知道我可以在查询中这样做:
SELECT PersNbr, (PersFirstName || PersMiddleName || PersLastName) PersName然后就这样做:
comboBox.DisplayMember = "PersName";但我不想在数据库层中进行数据格式化,因为它不应该在那里。
我怎样才能在Winforms中实现这一目标?
I'm trying to set the.DisplayMember property of a ComboBox in C#, but I want to bind it to multiple columns in the .DataSouce.
My SQL looks like this:
SELECT PersNbr, PersFirstName, PersMiddleName, PersLastName FROM Pers WHERE PersNbr = :persNbr;I'm saving this query in a DataTable so each column selected has it's own column in the Datatable.
I want to make the .DisplayMember a combination of PersFirstName + PersMiddleName + PersLastName so their full name appears like this:
comboBox.DisplayMemeber = "PersFirstName" + "PersMiddleName" + "PersLastName"I know I can just to this on the query:
SELECT PersNbr, (PersFirstName || PersMiddleName || PersLastName) PersNameand then just do this:
comboBox.DisplayMember = "PersName";but I don't want to do the formatting of data in the database layer since it's not supposed to be there.
How else can I achieve this in Winforms?
最满意答案
您可以创建表达式列 ,然后将其用作DisplayMember:
dataTable.Columns.Add( "FullName", typeof(string), "PersFirstName + ' ' + PersMiddleName + ' ' PersLastName"); comboBox.DisplayMember = "FullName";You can create an expression column and then use it as a DisplayMember:
dataTable.Columns.Add( "FullName", typeof(string), "PersFirstName + ' ' + PersMiddleName + ' ' PersLastName"); comboBox.DisplayMember = "FullName";更多推荐
DisplayMember,PersFirstName,PersMiddleName,电脑培训,计算机培训,IT培训"/> <me
发布评论