vb.net definir fonte de dados para combobox

Mohamed Amine:

Eu quero definir uma fonte de dados para a minha caixa de combinação quando eu corro não existe nenhum erro, mas ele continua mostrando zeros na combobox

Dim cnx As New MySqlConnection("datasource=localhost;database=bdgeststock;userid=root;password=")
        Dim cmd As MySqlCommand = cnx.CreateCommand
        Dim da As MySqlDataAdapter
        Dim ds As New DataSet
        If ConnectionState.Open Then
            cnx.Close()
        End If
        cnx.Open()
        cmd.CommandText = "SELECT idf,(prenom + ' ' + nom) AS NAME FROM fournisseur "
        da = New MySqlDataAdapter(cmd)
        cnx.Close()
        da.Fill(ds)
        da.Dispose()
        ComboBox1.DataSource = ds.Tables(0)
        ComboBox1.ValueMember = "idf"
        ComboBox1.DisplayMember = "NAME"

Caio Jard:

Acho que o problema está na sua sql e mysql está realizando algum tipo de adição numérico no prenom mais nom e produzindo 0

Experimentar

CONCAT(prenom, ' ', nom) as name

Em sua sql vez. Eu prefiro usar concat na maioria dos RDBMS para concatenar cadeias, porque é mais coerente com o seu comportamento on nulos - em sqlserver, usando o operador concat de mais em algo como 'a' + nullresultado em NULL, mas no Oracle 'a' || nullé a- tanto no comportamento CONCAT é consistente

Aqui está um código completo com todas as minhas recomendações:

Dim cnstr = "datasource=localhost;database=bdgeststock;userid=root;password="
Dim cmd = "SELECT idf, CONCAT(prenom, ' ', nom) AS nom FROM fournisseur "
Using da As New MySqlDataAdapter(cmd, cnstr)
    Dim dt As New DataTable
    da.Fill(dt)
    ComboBox1.DataSource = dt
    ComboBox1.ValueMember = "idf"
    ComboBox1.DisplayMember = "nom"
End Using

dicas:

  • você não precisa mexer com a conexão: DataAdapter irá criar / abrir / fechar para você
  • usar uma tabela de dados e não um conjunto de dados
  • usar Usando
  • usar o construtor de MySqlDataAdapter que leva um connectionstring e um comando texto- mais curto e mais próximo, neste caso. Eu só uso o construtor que leva um DbConnection se estou inscrever manualmente vários comandos em uma transação etc

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=372752&siteId=1
Recomendado
Clasificación