Usuário com melhor resposta
Inserir "Selecione uma opção..." no comboBox

Pergunta
-
Quero colocar no meu comboBox, a opção "Selecione uma opção...". Esse ComboBox está sendo carregado com informações via banco de dados. Abaixo, o código:
Npgsql.NpgsqlConnection con = new Npgsql.NpgsqlConnection();
con.ConnectionString = @"";
try
{
con.Open();
Npgsql.NpgsqlCommand cmd = new Npgsql.NpgsqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT clienteID, nome FROM Cliente ORDER BY nome ASC";
Npgsql.NpgsqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
cbCliente.ValueMember = "clienteID";
cbCliente.DisplayMember = "nome";
cbCliente.DataSource = dt;
dr.Close();
}
catch (Exception)
{
MessageBox.Show("Não existe nenhum registro gravado.");
}
con.Close();
con.Dispose();
Respostas
-
OK,
altere o sql para
SELECT 0 as 'clienteId', 'Selecione uma opção...' as 'nome' union all (SELECT clienteID, nome FROM Cliente ORDER BY nome ASC)
Não esqueça de Marcar Como Resposta!
Natan
- Editado 'Natan Silva terça-feira, 9 de junho de 2015 16:31
- Marcado como Resposta Gustavo.Henrique terça-feira, 9 de junho de 2015 16:46
Todas as Respostas
-
Olá, como você está setando o dataSource do Combobox, você não vai conseguir inserir itens manualmente.
Caso você estivesse inserindo os items manualmente, você poderia incluir o trecho de código antes de inserir os itens.
this.comboBox1.Items.Add("Selecione uma opção..."); this.comboBox1.SelectedIndex = 0;
- Editado Bruno Maschio Joaquim segunda-feira, 8 de junho de 2015 20:35
-
-
-
Realmente não tem como, esse comboBox trás os clientes do banco de dados, eu queria fazer desse jeito pois trabalho desta forma. Ao entrar no formulário eu não queria que viesse de cara o nome de um cliente, entendeu, queria que o usuário fizesse isso. O Selecione uma opção cairia bem pra mim.
Mas se tiver outra sugestão...
-
-
Adiciona isso no Sql que dá certo:
select 0, 'Selecione a Opção' union all SELECT clienteID, nome FROM Cliente
Natan
- Sugerido como Resposta Lucio Rogerio SPBanned terça-feira, 9 de junho de 2015 13:17
-
Cria um datatable e adiciona os dados nele (vindos do banco de dados) juntamente com a linha que precisa.
Caso não saiba como fazer me avisa é bem simplesA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Sugerido como Resposta Bruno Maschio Joaquim terça-feira, 9 de junho de 2015 12:50
-
-
Natan, fiz diretamente no banco e deu certinho.
Mas ao colocar no código ficou assim:
Abaixo segue codigo:
con.Open();
Npgsql.NpgsqlCommand cmd = new Npgsql.NpgsqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT 0, 'Selecione uma opção...' union all (SELECT clienteID, nome FROM Cliente ORDER BY nome ASC)";
Npgsql.NpgsqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
cbCliente.ValueMember = "clienteID";
cbCliente.DisplayMember = "nome";
cbCliente.DataSource = dt;
dr.Close();Tentei mexer em algumas coisas mas sem sucesso, o que pode ser esse erro?
-
OK,
altere o sql para
SELECT 0 as 'clienteId', 'Selecione uma opção...' as 'nome' union all (SELECT clienteID, nome FROM Cliente ORDER BY nome ASC)
Não esqueça de Marcar Como Resposta!
Natan
- Editado 'Natan Silva terça-feira, 9 de junho de 2015 16:31
- Marcado como Resposta Gustavo.Henrique terça-feira, 9 de junho de 2015 16:46
-