vb.net fuente de datos de la configuración de cuadro combinado

Mohamed Amine:

Quiero configurar una fuente de datos a mi cuadro combinado cuando corro no hay error pero sigue mostrando ceros en el cuadro combinado

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"

Caius Jard:

Creo que el problema está en su SQL, MySQL y está realizando algún tipo de adición numérico prenom además nom y produciendo 0

Tratar

CONCAT(prenom, ' ', nom) as name

En su lugar sql. Yo prefiero usar concat en la mayoría de RDBMS para concatenar cadenas, porque es más consistente con su comportamiento en NULL - en SQL Server, usando el operador de concat más en algo como 'a' + nullresultado en NULL, pero en Oracle 'a' || nulles a- tanto en el comportamiento es consistente CONCAT

Aquí hay un código completo con todas mis recomendaciones:

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

Consejos:

  • no es necesario perder el tiempo con la conexión: dataadapter creará / apertura / cierre por usted
  • utilizar una tabla de datos no es un conjunto de datos
  • Usando utilizar
  • utilizar el constructor de MySqlDataAdapter que toma un connectionstring y un comando en texto más corto y más cerca en este caso. Yo sólo uso el constructor que toma un DbConnection si estoy inscribir manualmente varios comandos en una transacción, etc.

Supongo que te gusta

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