Combobox, salvare i dati nel database

di Mattiiinfo16 il
10 risposte

Buongiorno a tutti, avrei questo piccolo problema, spero di farmi capire:

Ho una Formwindows in cui c'è il datagridview in cui vengono visualizzate le 3 colonne (articolo, Codarticolo, colore) del database Negozio della tabella “T_ini” la quale viene sempre aggiorna nel caso di inserimento dei dati. 

Mentre  ho in un altra tabella “T_Cod” ci sono 2 colonne (Codarticolo, descrizione)

Come ripetuto prima nel datagridview visualizzo le colonne della tabella “T_ini” ma vorrei modificare la colonna “Codarticolo” della stessa tabella in una combobox ( Le colonne tutte create in sql studio, non mi da la possibilità di cambiarla in un combbox dal softwere di sql) in cui devo scegliere solamente gli elementi della colonna “Codarticolo” della tabella “T_Cod” facendo un menu a discesa.

Ho provato ad utilizzare le proprietà di DataSource, DispalyMember, VisualMember ma senza nessuna efficacia perchè non riesco a digli di andare a recuperare i dati in un'altra tabella, vi riporto il codice.

Ho provato anche a creare dal codice una combobox, rendendo invisibile la colonna del CodArticolo, non prende ne gli elementi ne li salva, come posso fare?

Grazie in anticipo

Uso visualStudio 2022 in vba.net 

Try
   If Not IsNothing(m_dtTransc.GetChanges()) Then
       Select Case MessageBox.Show("Salvare i dati?", "", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
           Case Windows.Forms.DialogResult.Yes
               Salva()
           Case Windows.Forms.DialogResult.No
           Case Windows.Forms.DialogResult.Cancel
               Exit Sub
       End Select
   End If
   m_dtTransc.Rows.Clear()
   m_da = Nothing
   m_da = New SqlClient.SqlDataAdapter("select * from Negozio,dbo.T_ini  ", cnNegozio)
   m_da.Fill(m_dtTransc)
   m_cb = Nothing
   m_cb = New SqlClient.SqlCommandBuilder(m_da)
   m_cb.GetDeleteCommand()
   m_cb.GetUpdateCommand()
   m_cb.GetInsertCommand()
   Dim col As New DataGridViewComboBoxColumn
   DataGridView.DataSource = Nothing
   DataGridView.DataSource = m_dtTransc
   DataGridView.Columns("Codarticolo").Visible = False
   col.HeaderText = "Codice__fascia"
   col.Name = "Cod"
   col.DisplayMember = "Codarticolo"
   col.ValueMember = "CodArticolo"
   col.DataSource = m_dtTransc
Catch ex As Exception
   MessageBox.Show(ex.Message & " " & (New System.Diagnostics.StackTrace(ex, True)).ToString, Me.Name & " - " & (New System.Diagnostics.StackFrame()).GetMethod().Name, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

10 Risposte

  • Nessuno??? Non sono stato chiaro per caso?

  • Molto probabilmente …

  • La seconda

  • 14/12/2023 - oregon ha scritto:


    La seconda

    Ah ok, bastava dirlo…. comunque ho creato una colonna combobox nel datagridview, vorrei che gli elementi che l'utente sceglie si salvano in un altra colonna del database, perchè creando la combobox non riesco a trasferire i dati nella colonna nascosta del database

  • T_ini: articolo; codarticolo; colore.

    T_cod: codarticolo; descrizione.

    12/12/2023 - Mattiiinfo16 ha scritto:


    non mi da la possibilità di cambiarla in un combbox dal softwere di sql) in cui devo scegliere solamente gli elementi della colonna “Codarticolo” della tabella “T_Cod” facendo un menu a discesa.

    Sarei tentato di comprare una vocale, chiedere l'aiuto da casa e eliminare il 50%.

    Supposto che t_cod sia la tabella articoli e che t_ini sia la tabella intermedia molti a molti tra T_cod e colori (che non so se hai previsto) vorresti che il colore dell'articolo venga preso dalla tabella colori da una combo con items [rosso, giallo, verde, ecc] per evitare di scrivere i rispettivi [12, 246, 433, ecc] (gli id colore)?

  • 14/12/2023 - sihsandrea ha scritto:


    T_ini: articolo; codarticolo; colore.

    T_cod: codarticolo; descrizione.

    12/12/2023 - Mattiiinfo16 ha scritto:


    non mi da la possibilità di cambiarla in un combbox dal softwere di sql) in cui devo scegliere solamente gli elementi della colonna “Codarticolo” della tabella “T_Cod” facendo un menu a discesa.

    Sarei tentato di comprare una vocale, chiedere l'aiuto da casa e eliminare il 50%.

    Supposto che t_cod sia la tabella articoli e che t_ini sia la tabella intermedia molti a molti tra T_cod e colori (che non so se hai previsto) vorresti che il colore dell'articolo venga preso dalla tabella colori da una combo con items [rosso, giallo, verde, ecc] per evitare di scrivere i rispettivi [12, 246, 433, ecc] (gli id colore)?

    Esatto

  • Perfetto!

    Se ho capito la logica allora manca la tabella colori.

    Un articolo ha più colori e un colore può essere per più articoli.

    Controlla le relazioni molti a molti e hai risolto. Nel forum è stato trattato n volte. Cambiano i nomi ma il concetto è lo stesso.

  • Ti suggerisco di usare nomi intuitivi per tabelle e campi.

Devi accedere o registrarti per scrivere nel forum
10 risposte