Problema com o Combox
NEG_Produto NEG_Produto = new NEG_Produto(); DataTable dtProduto = new DataTable(); dtProduto = NEG_Produto.getAllProdutos(); cmbProduto.DataSource = dtProduto; cmbProduto.DataSource = dtProduto; cmbProduto.DisplayMember = dtProduto.Columns["acdescricao"].ToString(); cmbProduto.ValueMember = dtProduto.Columns["accdproduto"].ToString(); cmbProduto.SelectedIndex = -1;
Na hora de converter para inteiro e visualizar o codigo do produto em uma Label dá o seguinte erro: Não é possível converter um objeto do tipo 'System.Data.DataRowView' no tipo 'System.IConvertible'.
private void cmbUnidade_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbUnidade.SelectedIndex >= 0)
{
int CodigoProduto = Convert.ToInt32(cmbUnidade.SelectedValue);
lblCodigo.Text = CodigoProduto.ToString("0000000");
}
}
Antonio Araujo
Curtidas 0
Respostas
Robson Alves
21/02/2013
Que estranho, tem certeza que o erro está na hora de passar para a label?
Você faz databind no seu dropdown?
Veja qual o valor carregado por ele no momento de converter o selectedvalue para inteiro.
Você faz databind no seu dropdown?
Veja qual o valor carregado por ele no momento de converter o selectedvalue para inteiro.
GOSTEI 0
Robson Alves
21/02/2013
Considerando que o usuário criou outro post com o mesmo conteúdo e com a descrição mais completa, vou concluir este.
GOSTEI 0
Antonio Araujo
21/02/2013
conitnua com o mesmo problema.. vou postar todos os metodos
este metodo retorna a datatable com os dados
... da minha classe de negocio eu pego os valores e seto no combox carregado no Load do Form
depois passo key para o labe e dá o problema
public DataTable getAllProdutos()
{
try
{
using (MySqlConnection ConnMySQL = DAO_FactoryMySql.getConnectionMySql())
{
using (MySqlCommand CommMySQL = new MySqlCommand())
{
CommMySQL.Connection = ConnMySQL;
CommMySQL.CommandType = System.Data.CommandType.Text;
CommMySQL.CommandText = "SELECT accdproduto, acdescricao FROM acnetprodutos";
DataTable dt = new DataTable();
MySqlDataAdapter dataAdpter = new MySqlDataAdapter(CommMySQL);
dataAdpter.Fill(dt);
return dt;
}
}
}
catch (Exception err)
{
throw new Exception("Erro na busca do Produto.: " + err.InnerException.Message);
}
}
este metodo retorna a datatable com os dados
... da minha classe de negocio eu pego os valores e seto no combox carregado no Load do Form
NEG_Produto NEG_Produto = new NEG_Produto(); DataTable dtProduto = new DataTable(); dtProduto = NEG_Produto.getAllProdutos(); cmbProduto.DataSource = dtProduto; cmbProduto.DataSource = dtProduto; cmbProduto.DisplayMember = dtProduto.Columns["acdescricao"].ToString(); cmbProduto.ValueMember = dtProduto.Columns["accdproduto"].ToString(); cmbProduto.SelectedIndex = -1;
depois passo key para o labe e dá o problema
private void cmbUnidade_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbUnidade.SelectedIndex >= 0)
{
int CodigoProduto = Convert.ToInt32(cmbUnidade.SelectedValue.ToString());
lblCodigo.Text = CodigoProduto.ToString("0000000");
}
}
GOSTEI 0