Array
(
)

Problema com o Combox

Ancelmo
   - 21 fev 2013

#Código
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'.
#Código
private void cmbUnidade_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbUnidade.SelectedIndex >= 0)
{
int CodigoProduto = Convert.ToInt32(cmbUnidade.SelectedValue);
lblCodigo.Text = CodigoProduto.ToString("0000000");
}
}

Robson Robsonalves.net
   - 21 fev 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.

0
|
0

Robson Robsonalves.net
   - 21 fev 2013

Considerando que o usuário criou outro post com o mesmo conteúdo e com a descrição mais completa, vou concluir este.

0
|
0

Ancelmo
   - 21 fev 2013

conitnua com o mesmo problema.. vou postar todos os metodos
#Código
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
#Código
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

#Código
private void cmbUnidade_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbUnidade.SelectedIndex >= 0)
{
int CodigoProduto = Convert.ToInt32(cmbUnidade.SelectedValue.ToString());
lblCodigo.Text = CodigoProduto.ToString("0000000");
}
}

0
|
0