Olá.
Estou montando um formulário em que existem vários combobox diferentes. Acontece que quero que todos esses combobox sejam preenchidos com dados de duas tabelas do SQL server.
O combobox cbnomepaciente, deve ser preenchido com o que está na coluna NOMEPACIENTE da tabela PACIENTES. Os combobox cb1dia1, cb2dia1, cb1dia2, etc, devem ser preenchidos com o que está na coluna NOMEFUNCIONARIO, da tabela
FUNCIONARIOS. Acontece que quando inicio a aplicação, o datareader é preenchido com todos os dados de ambas as colunas, só que na hora de popular os combobox, ele popula ambos com a mesma quantidade de itens da coluna maior. Por exemplo, na tabela PACIENTES,
só existe um único nome cadastrado, "Rafael", enquanto que na tabela FUNCIONÁRIOS, existem 10. Como o datareader é preenchido com ambas as colunas, na hora de popular os combobox, ele preenche o nome "Rafael" no cbnomepaciente e o primeiro
nome da coluna NOMEFUNCIONARIO no em cada cb1dia1, cbdia2, etc. Depois, ele reinicia para adicionar o restante dos nomes da coluna NOMEFUNCINÁRIOS, mas nesse processo, ele passa novamente pelo cbnomepaciente e repete a adição do nome "Rafael". Ele
faz isso até terminar de preencher todos os nomes da coluna NOMEFUNCIONÁRIOS nos respectivos combobox.
Gostaria de saber uma forma de fazer com que dentro do evento load, quando eu for realizar essa query pra preencher o datareader e popular os combobox, como eu poderia fazer para que cada combobox recebesse o mesmo número de itens exato ao da coluna com
a qual estou preenchendo ele.
Segue o código:
private void TabelaEscalas_Load(object sender, EventArgs e)
{
string users;
string users2;
SqlConnection conexao = new SqlConnection("Integrated Security = SSPI; Persist Security Info = False; Initial Catalog = CLÍNICA; Data Source = SISTEM-PC\\SQLEXPRESS");
conexao.Open();
SqlCommand instrucoes = new SqlCommand("SELECT NOMEFUNCIONARIO, NOMEPACIENTE FROM FUNCIONARIOS, PACIENTES", conexao);
try
{
conexao.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
SqlDataReader rd1 = null;
rd1 = instrucoes.ExecuteReader();
while (rd1.Read())
{
users = rd1["NOMEFUNCIONARIO"].ToString();
users2 = rd1["NOMEPACIENTE"].ToString();
cbnomepaciente.Items.Add(users2);
cb1dia1.Items.Add(users);
cb2dia1.Items.Add(users);
cb1dia2.Items.Add(users);
cb2dia2.Items.Add(users);
cb1dia3.Items.Add(users);
cb2dia3.Items.Add(users);
cb1dia4.Items.Add(users);
cb2dia4.Items.Add(users);
cb1dia5.Items.Add(users);
cb2dia5.Items.Add(users);
cb2dia6.Items.Add(users);
cb1dia6.Items.Add(users);
}
}