使用组合框检索值并将值发送到我的txtbox谢谢

问题描述 投票:0回答:1

[大家好,我正在尝试使用linq to Sql从数据库中检索值,这是我的代码。我从WPF获取一个组合框值,试图从我的Microsoft sql server中检索电话号码,结果在我的txtbox中给了我这个“ System.Linq.Enumerable + WhereListIterator`1 [MultiLoc.client]”。

        private void cmbIdClient_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        VehiculeDataContext data = new VehiculeDataContext();

        List<client> clients = (from cli in data.clients select cli).ToList();
        IEnumerable<client> tel = Enumerable.Where(clients, x => x.id_client.ToString() == cmbIdClient.SelectedValue.ToString());
        txtnumerotel.Text = tel.ToString();

    }
c# sql combobox textbox
1个回答
0
投票

输出为System.Linq.Enumerable+WhereListIterator1[MultiLoc.client]的原因是由于IEnumerable.ToString仅返回对象的类型,而不返回值。另外,IEnumerable代表值的集合,不一定代表一个值,我认为这不是您想要的。

为了解决这个问题,假设client类看起来像:

public class client
{
    public int id_client { get; set; }
    public string phone_num { get; set; }
    ...
}

并且每个client具有唯一的id_client,您可以更改:

IEnumerable<client> tel = Enumerable.Where(clients, x => x.id_client.ToString() == cmbIdClient.SelectedValue.ToString());

成为:

string tel = clients.FirstOrDefault(x => x.id_client.ToString() == cmbIdClient.SelectedValue.ToString())?.phone_num ?? "<Whatever default value for no client>";
© www.soinside.com 2019 - 2024. All rights reserved.