组合框中的两个字段值displaymember和datatable c#
本文关键字:字段 displaymember datatable 两个 组合 | 更新日期: 2023-09-27 18:16:29
我想将两个字段绑定在一起,并在组合框中显示。
我有名字和姓氏在我的数据库,如何在组合框中显示全名?
我尝试了这个代码,但是我得到了一些错误:
OracleDataAdapter names= new OracleDataAdapter("SELECT first, last FROM person", conn);
DataTable dt = new DataTable();
names.Fill(dt);
dt.Columns.Add("FullName", typeof(string), "first' : ' last"); //<-- error's here
cmbCBox.DisplayMember = "FullName";
cmbBox.DataSource = dt;
conn.Close();
错误是:
':'操作符后缺少操作数。
如果你想创建这样的格式:
Donald : Duck
则表达式为:
dt.Columns.Add("full", typeof(string), "first + ' : ' + last");
示例代码:
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("first", typeof(string));
dt.Columns.Add("last", typeof(string));
dt.Columns.Add("full", typeof(string), "first + ' : ' + last");
System.Data.DataRow row = dt.NewRow();
row["first"] = "Donald";
row["last"] = "Duck";
dt.Rows.Add(row);
请数据库引擎为您创建FullName
// Oracle operator to concatenate strings is ||
string query = @"SELECT first || ' ' || last as FullName FROM person";
OracleDataAdapter names= new OracleDataAdapter(query, conn);
...
cmbCBox.DisplayMember = "FullName";
这种方法将只返回FullName作为first和last字段的组合。当然,如果需要的话,没有什么可以阻止您添加其他字段。例如,您可能需要PersonID(或person表上的任何主键)用于组合的ValueMember。通过这种方式,您可以读取SelectedValue以恢复属于所选FullName的Person记录。
最后一点。我认为,使用DataTable表达式构建客户端FullName对于许多场景来说都是一个很好的选择,但在这种情况下,数据库引擎可以更快地完成它。我建议用秒表做一个简单的检查,以验证差异