Наполнять combobox с двумя колоннами bd mysql

моя консультация - скорее теория, мне нужно, чтобы ComboBox, который берет стоимость bd mysql, показал два поля таблицы. Я попытался изменяя консультацию, включая SELECT

SELECT campos, concat(campo1, ' ' ,campo2) as CAMPOFINAL from Tabla1 

и в DisplayMember контроля помещать CAMPOFINAL но совсем не.

Если бы они смогли давать мне идею как, делать это, он им был бы благодарен.

Спасибо. Я издаю:

код для combobox c# (он не является Веб, - рабочий стол)

this.cmbDevUsuario.DataSource = new Solicitante().listaSolicitantes();
        this.cmbDevUsuario.SelectedIndex = 0;
        this.cmbDevUsuario.ValueMember = "idUsuario";
        this.cmbDevUsuario.DisplayMember = "NombreCompleto";

список dataSource приходит из здесь (Ходатайствующего Класса):

public List<Solicitante> listaSolicitantes()
    {
        solicitanteBD = new SolicitanteBD(this);
        return solicitanteBD.listaSolicitantes();
    }

Класс Доступа Данных SolicitanteBD содержит:

public List<Solicitante> listaSolicitantes()
    {
        List<Solicitante> lista = new List<Solicitante>();


      String consulta = "SELECT idUsuario, concat(NombrePed, ' ', ApellidoPed) as NombreCompleto, Telefono from usuario";
        MySqlDataAdapter adaptador = new MySqlDataAdapter(consulta, this.cn);
        adaptador.Fill(this.tabla);


        foreach (DataRow fila in this.tabla.Rows)
        {
          Solicitante autFill = new Solicitante(fila[0].ToString(), fila[1].ToString(), fila[2].ToString());

            lista.Add(autFill);
        }

        return lista;
    }

И когда я делаю это таким, comboBox ничего не показывает мне.

1
задан 18.03.2019, 18:22
1 ответ

Он советовал бы, что ты использовал reader, чтобы наполнять список

public List<Solicitante> listaSolicitantes()
{
    List<Solicitante> lista = new List<Solicitante>();

    string consulta = "SELECT idUsuario, concat(NombrePed, ' ', ApellidoPed) as NombreCompleto, Telefono from usuario";
    MySqlCommand cmd = new MySqlCommand(consulta, this.cn);

    var reader = cmd.ExecureReader();

    while(reader.Read())
    {
        Solicitante autFill = new Solicitante(reader["idUsuario"].ToString(), 
                                                reader["NombreCompleto"].ToString(), 
                                                reader["Telefono"].ToString());

        lista.Add(autFill);
    }

    return lista;
}

, Кроме того попробуй помещать свойства DisplayMember и ValueMember перед DataSource

var dataAccess = new Solicitante();
var solicitantes = dataAccess.listaSolicitantes();

cmbDevUsuario.ValueMember = "idUsuario";
cmbDevUsuario.DisplayMember = "NombreCompleto";
cmbDevUsuario.DataSource = solicitantes;

cmbDevUsuario.SelectedIndex = 0;

у тебя Должен быть класс, как тебя

public class Solicitante
{
    public string idUsuario {get;set;}
    public string NombreCompleto {get;set;}
    public string Telefono {get;set;}
}

тогда, когда ты повторяешь, ты мог бы использовать

while(reader.Read())
{
    Solicitante autFill = new Solicitante() 
                            {
                                idUsuario = reader["idUsuario"].ToString(), 
                                NombreCompleto = reader["NombreCompleto"].ToString(), 
                                Telefono = reader["Telefono"].ToString()
                            };

    lista.Add(autFill);
}

так ты не нуждаешься никакой строитель

1
ответ дан 02.12.2019, 05:28
  • 1
    Привет, использовав код, который ты облегчаешь мне, я получаю как ответ изогнутый немного así как маршрут (из-за así говорить это): Книги. Дела. Проситель –  Eric Daniel 18.03.2019, 20:13
  • 2
    это namespace класса, не берет тебе DisplayMember. Ты определяешь свойства в классе Solicitante ? или это публичные переменные? –  Leandro Tuttini 18.03.2019, 20:18
  • 3
    у меня есть созданный следующее: лиши тебя String idUsuario; лиши тебя String nombrePed; лиши тебя String apellidoPed; лиши тебя String телефон; лиши тебя SolicitanteBD solicitanteBD; Ademá s строителей и методов set и get –  Eric Daniel 18.03.2019, 20:28
  • 4
    добавьте, что код показывая, как ты был бы должен определять класс, set/get не методы, это не java –  Leandro Tuttini 18.03.2019, 20:49
  • 5
    Спасибо, это ответ. –  Eric Daniel 18.03.2019, 21:39

Теги

Похожие вопросы