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

    [Visual Net] Collegare database a textbox:aggiungere record, modificarli e salvarli

    Salve a tutti,

    ho un Database su mysql con una tabella "Utenti" che visualizzo sul mio form tramite datagridview. Posso salvare, modificare o eliminare record senza problemi. Ogni record è composto da una serie di info su utenti (id, nome, cognome, via, ecc).

    Vorrei visualizzare, modificare e salvare questi record non attraverso il datagridview ma attraverso textbox . Magari indicando il numero di id di un record vorrei che venisse visualizzato il record relativo con tutti i suoi campi nelle textbox. Ogni textbox sarebbe cioè collegata ad un campo/colonna della tabella e sempre attraverso queste textbox vorrei poter modificare e salvare i campi del record nel db.

    Voglio ottenere questo perchè non mi piace operare sul db attraverso la griglia del datagridview. Vorrei una visualizzazione più comoda dei dati del db, simile ad un modulo/form on line di iscrizione.

    E' da una settimana che ci provo, per favore aiutatemi. Non sono un esperto di vb net , postatemi un pò di codice se potete.

    ps: a dir la verita tramite la procedura guidata di "Aggiungi origine dati", trascinando la tabella acquisita sul form (in modalità dettaglio) si crea un BindingNavigator nel form tramite il quale riesco a fare praticamente quello che chiedo. Ma, non potendosi vedere il codice generato, non posso modificare il progetto per adattarlo alle mie esigenze (filtrare ire cord per campo id e non per posizione nella tabella come fa di default).

    Grazie

  2. #2
    Ciao
    Questo piccolo progetto di esempio dovresti riuscire a capire come creare un "legame" tra la tua applicazione ed il Database.

    Facci sapere...
    Ciao

  3. #3
    Originariamente inviato da Jeremy75
    Ciao
    Questo piccolo progetto di esempio dovresti riuscire a capire come creare un "legame" tra la tua applicazione ed il Database.

    Facci sapere...
    Ciao
    Grazie per l'esempio Jeremy,

    però riguarda sempre il caricamento e l'update del db attraverso datagridview. A me interessava tramite textbox. Magari la differenza è minima è può sembrare una modifica stupida ma non riesco proprio a capire come si fa: visualizzare e modificare i singoli record (individuati tramite il campo id ) attraverso semplici textbox (una per ogni campo).


  4. #4
    Ciao
    Ho modificato il progettino di esempio secondo le tue esigenze .... se mi dai un indirizzo te lo invio.

  5. #5
    Originariamente inviato da Jeremy75
    Ciao
    Ho modificato il progettino di esempio secondo le tue esigenze .... se mi dai un indirizzo te lo invio.
    ti ho inviato un email, credo, con il mio contatto ..
    non sapevo se poter postare qui la mia email
    grazie

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Originariamente inviato da niccolo84
    ti ho inviato un email, credo, con il mio contatto ..
    non sapevo se poter postare qui la mia email
    Il problema è un altro: generalmente, è sempre preferibile fornire indicazioni sul forum, in modo che siano di aiuto a tutti coloro che dovessero trovarsi un domani ad affrontare lo stesso problema.

    Inviare (e ricevere) progetti già pronti in email non è d'aiuto a nessun altro, se non a una persona sola.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Giustissimo ...
    Allora facciamo così .... modifica il codice del progettino di esempio con quest'altro codice.
    codice:
    Imports System.Data.SqlClient
    
    Public Class Form1
        Private ConnString As String
        Private Conn As SqlConnection
        Private Cmd As SqlCommand
        Private Da As SqlDataAdapter
        Private Cb As SqlCommandBuilder
        Private Ds As DataSet
        Private bs As BindingSource
        Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            InizializzaOggetti()
            Da.Fill(Ds, "Listino")
            bs = New BindingSource(Ds, "Listino")
            TextBox1.Text = DirectCast(bs.Current, DataRowView).Item("Id").ToString
            TextBox2.Text = DirectCast(bs.Current, DataRowView).Item("Articolo").ToString
            TextBox3.Text = DirectCast(bs.Current, DataRowView).Item("Descrizione").ToString
            TextBox4.Text = DirectCast(bs.Current, DataRowView).Item("Prezzo").ToString
        End Sub
        Private Sub InizializzaOggetti()
            ConnString = String.Format("Data Source=.\SQLEXPRESS;AttachDbFilename={0}\Db.mdf;Integrated Security=True;User Instance=True", Application.StartupPath)
            Conn = New SqlConnection(ConnString)
            Cmd = New SqlCommand("SELECT * FROM LISTINO", Conn)
            Da = New SqlDataAdapter(Cmd)
            Cb = New SqlCommandBuilder(Da)
            Ds = New DataSet
        End Sub
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            bs.MoveNext()
            TextBox1.Text = DirectCast(bs.Current, DataRowView).Item("Id").ToString
            TextBox2.Text = DirectCast(bs.Current, DataRowView).Item("Articolo").ToString
            TextBox3.Text = DirectCast(bs.Current, DataRowView).Item("Descrizione").ToString
            TextBox4.Text = DirectCast(bs.Current, DataRowView).Item("Prezzo").ToString
        End Sub
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            bs.MovePrevious()
            TextBox1.Text = DirectCast(bs.Current, DataRowView).Item("Id").ToString
            TextBox2.Text = DirectCast(bs.Current, DataRowView).Item("Articolo").ToString
            TextBox3.Text = DirectCast(bs.Current, DataRowView).Item("Descrizione").ToString
            TextBox4.Text = DirectCast(bs.Current, DataRowView).Item("Prezzo").ToString
        End Sub
    End Class
    Tieni presente che non ho dedicato molto tempo all'ottimizzazione del codice(ma dovrebbe quanto meno darti l'idea di come devono funzionare le cose) e che ho ipotizzato un ambiente non tipizzato.

    Facci sapere...
    Ciao

  8. #8
    Originariamente inviato da Jeremy75
    Giustissimo ...
    Allora facciamo così .... modifica il codice del progettino di esempio con quest'altro codice.
    codice:
    Imports System.Data.SqlClient
    
    Public Class Form1
        Private ConnString As String
        Private Conn As SqlConnection
        Private Cmd As SqlCommand
        Private Da As SqlDataAdapter
        Private Cb As SqlCommandBuilder
        Private Ds As DataSet
        Private bs As BindingSource
        Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            InizializzaOggetti()
            Da.Fill(Ds, "Listino")
            bs = New BindingSource(Ds, "Listino")
            TextBox1.Text = DirectCast(bs.Current, DataRowView).Item("Id").ToString
            TextBox2.Text = DirectCast(bs.Current, DataRowView).Item("Articolo").ToString
            TextBox3.Text = DirectCast(bs.Current, DataRowView).Item("Descrizione").ToString
            TextBox4.Text = DirectCast(bs.Current, DataRowView).Item("Prezzo").ToString
        End Sub
        Private Sub InizializzaOggetti()
            ConnString = String.Format("Data Source=.\SQLEXPRESS;AttachDbFilename={0}\Db.mdf;Integrated Security=True;User Instance=True", Application.StartupPath)
            Conn = New SqlConnection(ConnString)
            Cmd = New SqlCommand("SELECT * FROM LISTINO", Conn)
            Da = New SqlDataAdapter(Cmd)
            Cb = New SqlCommandBuilder(Da)
            Ds = New DataSet
        End Sub
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            bs.MoveNext()
            TextBox1.Text = DirectCast(bs.Current, DataRowView).Item("Id").ToString
            TextBox2.Text = DirectCast(bs.Current, DataRowView).Item("Articolo").ToString
            TextBox3.Text = DirectCast(bs.Current, DataRowView).Item("Descrizione").ToString
            TextBox4.Text = DirectCast(bs.Current, DataRowView).Item("Prezzo").ToString
        End Sub
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            bs.MovePrevious()
            TextBox1.Text = DirectCast(bs.Current, DataRowView).Item("Id").ToString
            TextBox2.Text = DirectCast(bs.Current, DataRowView).Item("Articolo").ToString
            TextBox3.Text = DirectCast(bs.Current, DataRowView).Item("Descrizione").ToString
            TextBox4.Text = DirectCast(bs.Current, DataRowView).Item("Prezzo").ToString
        End Sub
    End Class
    Tieni presente che non ho dedicato molto tempo all'ottimizzazione del codice(ma dovrebbe quanto meno darti l'idea di come devono funzionare le cose) e che ho ipotizzato un ambiente non tipizzato.

    Facci sapere...
    Ciao
    Grazie mille..
    ho un problema quando provo a collegare il mio database mysql.

    non capisco come settare questo codice con il mio db

    codice:
    ConnString = String.Format("Data Source=.\SQLEXPRESS;AttachDbFilename={0}\Db.mdf;Integrated Security=True;User Instance=True", Application.StartupPath)
    dove metto l'indirizzo del server, il dome del db, user id e password?
    e poi un alta cosa (approfitto della tua genialità e pazienza) come faccio a salvare le modifiche ai record quando vado a modificare i dati visualizzati nei textbox del tuo esempio?

    Grazie ancora

  9. #9
    Ciao
    per la stringa di connessione fai riferimento a questo link .... per quanto riguarda le classi dovrai sostituirle con quelle di MySql(dovresti averle sotto il namespace MySql.Data)

    come faccio a salvare le modifiche ai record quando vado a modificare i dati visualizzati nei textbox del tuo esempio
    E' sufficiente richiamare il metodo Update del Da(DataAdapter)


    Per il resto ... facci sapere...
    Ciao

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.