Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    VB 2008 Popolare datagrid da codice

    Ciao a tutti,

    non riesco a popolare il datagrid con questa porzione di codice:

    codice:
            Dim query As String = "SELECT * FROM ps_customer"
            Try
                Dim AccountDatabase As String = "Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.99;Database=myecommerce;uid=utente;pwd=password"
                Dim Connessione As New OdbcConnection(AccountDatabase)
                Connessione.Open()
                Dim connStr As String = AccountDatabase
                Dim con As OdbcConnection = New OdbcConnection(connStr)
                Dim cmd As OdbcCommand = con.CreateCommand()
                con.Open()
                DataGridView1.Columns.Add("id_customer", "ID")
                DataGridView1.DataSource = query
    
            Catch ex As Exception
                MsgBox("Errore")
                Me.Close()
    
            End Try
    dov'è l'errore?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Forse è il caso di chiedersi: 'dove sono gli errori ?'
    Perchè ve n'è più di uno...

    - Crei ed usi due variabili stringa (AccountDatabase e connStr) che conterrano lo stesso valore. Oddio, non è un peccato veniale, ma a che pro? Usane una sola (connStr)

    - Apri una connessione (che non usi)

    - Apri un Command (che non usi)

    - Pretendi di popolare un DataGriddView con una stringa SQL
    (DataGridView1.DataSource = query)


  3. #3
    codice:
    Dim query As String = "SELECT * FROM ps_customer"
            Dim rs As New ADODB.Recordset
            DataGridView1.Columns.Add("id_customer", "Codice")
            DataGridView1.Columns.Add("firstname", "Nome")
            DataGridView1.Columns.Add("lastname", "Cognome")
            DataGridView1.Columns.Add("newsletter", "NL")
            Try
                Dim AccountDatabase As String = "Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.99;Database=myecommerce;uid=utente;pwd=password"
                Dim con As OdbcConnection = New OdbcConnection(AccountDatabase)
                Dim cmd As OdbcCommand = con.CreateCommand()
                con.Open()
                'rs = query
                'DataGridView1.DataSource = rs
                con.Close()
            Catch ex As Exception
                MsgBox("Errore")
                Me.Close()
            End Try
    Ho fatto alcune modifiche al codice. Non so come popolare il datagrid con questo codice. Ho provato a dare come datasource anche la connessione ma non cambia nulla.
    Concettualmente il codice è (almeno spero) giusto, però non funziona.
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  4. #4
    continuo nei miei esperimenti e ora ho questo:

    codice:
            Dim query As String = "SELECT * FROM ps_customer"
            Dim rs As New ADODB.Recordset
            DataGridView1.Columns.Add("id_customer", "Codice")
            DataGridView1.Columns.Add("firstname", "Nome")
            DataGridView1.Columns.Add("lastname", "Cognome")
            DataGridView1.Columns.Add("newsletter", "NL")
            'Try
            Dim AccountDatabase As String = "Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.99;Database=myecommerce;uid=utente;pwd=password"
            Dim con As OdbcConnection = New OdbcConnection(AccountDatabase)
            Dim cmd As OdbcCommand = con.CreateCommand()
            con.Open()
            rs.Open(query)
            DataGridView1.DataSource = rs
            con.Close()
            'Catch ex As Exception
            MsgBox("Errore")
            Me.Close()
            'End Try
    però non funziona e mi genera un'eccezione. Chi mi aiuta?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Queste istruzioni mi lasciano perplesso:

    codice:
    Dim rs As New ADODB.Recordset
    Lo sai, vero, che questa istruzione è per ADODB invece che ADO.NET ?
    Perchè usi ADODB? Su quali motivazioni si basa la tua scelta?

    codice:
    Dim cmd As OdbcCommand = con.CreateCommand()
    Continui ad aprire un command, ma per farne che?
    Vorresti cortesemente spiegarcelo?

    Concettualmente il codice è (almeno spero) giusto, però non funziona.
    Purtroppo devo disilluderti: concettualmente il codice è tutto sballato.

    A me sembri uno che sta scrivendo codice 'a caso' mescolando ingredienti VB6 e VB.NET con la speranza che 'il minestrone' diventi buono.
    Ma sperare (come vedi) non risolve niente.

    Francamente, il solo modo per aiutarti sarebbe quello di scriverti tutto il codice da zero, cosa che in un forum non ha senso, ma se anche fosse non lo capiresti.

    Forse sarebbe il caso PRIMA di studiare un po' meglio la teoria, gli oggetti che vuoi usare (proprietà e metodi), e DOPO metterti a programmare.
    Altrimenti... Buona arrampicata ->


  6. #6
    Vedi, io stò imparando il VB 2008 da zero. Ho imparato le cose basilari e ora stavo facendo esperimenti sui DB. Ho provato a lavorare su MySQL dato che avevo questa possibilità.

    Ho seguito altre discussioni su questo argomento, per questo è diventato un insieme di codice di vari ambienti.
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  7. #7
    torno su questo post per chiedere se cortesemente qualcuno avesse degli esempi commentati su vb 2008 e database mysql.

    --- EDIT

    Ci sono riuscito! Ho trovato questo tutorial http://www.dotnethell.it/articles/MySQL.aspx e tramite quello ho scritto questo codice:

    codice:
    Try
                Dim con As MySqlConnection = New MySqlConnection("Server=XXX.XXX.XXX.XXX;Database=XXXX;uid=XXXX;pwd=XXXX")
                con.Open()
                Dim ds As New DataSet()
                Dim da As New MySqlDataAdapter("SELECT * FROM ps_customer", con)
                da.Fill(ds, "ps_customer")
                dgwClienti.DataSource = ds.Tables("ps_customer")
                con.Close()
            Catch ex As Exception
                MsgBox("Errore")
                Me.Close()
            End Try
    e ora il datagrid si popola! Quasi dimenticavo: bisogna aggiungere anche questo:

    codice:
    Imports MySql.Data.MySqlClient
    Errare è umano, ma per fare veramente casino ci vuole la password di root

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.