C# 从组合框中抓取displaymember并用于填充文本框

C# 从组合框中抓取displaymember并用于填充文本框,c#,combobox,C#,Combobox,我有一个由dataadapter填充的组合框。填充组合框一点问题都没有,但我正在尝试找出如何获取displaymember而不是所选值 cotcommand = new SqlCommand(); cotguestadapter = new SqlDataAdapter(); cotcommand.Connection = cottageconnect; cotcommand.CommandText

我有一个由dataadapter填充的组合框。填充组合框一点问题都没有,但我正在尝试找出如何获取displaymember而不是所选值

cotcommand = new SqlCommand();
                cotguestadapter = new SqlDataAdapter();
                cotcommand.Connection = cottageconnect;
                cotcommand.CommandText = "SELECT Phone, (\"Last Name\" + ', ' + \"First Name\") AS NAME FROM Guests ORDER BY NAME";
                cotguestadapter.SelectCommand = cotcommand;
                cotguestadapter.Fill(cotguestdataset);
                cboGuests.DataSource = cotguestdataset.Tables[0];
                cboGuests.DisplayMember = "NAME";
                cboGuests.ValueMember = "Phone";
我可以很容易地获取valuemember并用它做我想做的事情,但是我真的很想提取displaymember(它是连接的名称)并将其显示在文本框中。我需要一个确认框的显示名称,用户可以选择yes,然后我的代码将在那时将注册插入数据库


我可以从组合框中获取displaymember并在文本框中使用它吗?

在本例中,
displaymember
实际上是列名,因此您可以提取基础数据绑定项并获取值:

var someDisplay = ((DataRowView) someItem).Row[comboBox1.DisplayMember];
//someDisplay is still an object, just cast or convert to what you want.

没有什么比把SQL作为字符串放在UI后面的代码中更好的了。让我想起“美好的VB6天”。是的……我有一位老老师;)但我的问题有什么帮助吗?是的,不要试图从UI“读取数据”。UI不是数据,甚至在winforms中也不是。只需从您要获取的任何
IEnumerable
中获取数据项即可。在DataRowView之后,您有一个“someItem”,该项就是要从中提取的表吗?我试着输入名称,因为这是该列的名称,但似乎不起作用。我尝试了:string someDisplay=((DataRowView)NAME).Row[cboGuests.DisplayMember]@用户2966944
someItem
这里是您的
comboBox1
的一些项目,例如
comboBox1.Items[0]
,您还可以通过您的
comboBox1.Items
进行一些循环,并将每个项目作为与我的代码中的
someItem
相同的角色传递进来,然后获得所需的DisplayMember。啊哈……我现在明白了!谢谢你,先生。这在很大程度上是我想要的。现在我只需要找出如何得到正确的行号。我可以在组合框中选择第五个人物,但它仍然会显示第一行人物,而不是数据库中第五行的人物。如果这有道理的话。例如:如果我选择了第五个名称,那么我希望它是comboBox1。Items[4]感谢您向我展示如何做到这一点……我非常感谢。我将继续使用它,而不是像我最初计划的那样,在另一个SQL查询中使用原始valuemember再次获取名称。@Marty要获取所选项目,您只需要访问属性
comboBox1。SelectedItem
,您还可以处理
SelectedIndexChanged
事件,以便在代码发生更改时正确运行代码,还记得检查
SelectedIndex
是否为
-1
(处理组合框时经常发生这种情况)。