получить значение с помощью комбинированного списка и отправить значение в мой текстовый ящик спасибо - PullRequest
0 голосов
/ 31 марта 2020

Привет всем, я пытаюсь получить значение из моей базы данных, используя linq для Sql, это мой код прямо сейчас. Из WPF я беру значение в поле со списком, пытаясь получить номер телефона с моего сервера Microsoft sql, и в результате я получаю этот «System.Linq.Enumerable + WhereListIterator`1 [MultiLo c .client]» в моем txtbox .

        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();

    }

1 Ответ

0 голосов
/ 31 марта 2020

Причина, по которой на выходе выводится 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>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...