Ciao a tutti,
ho un db sql con le classiche tabelle ARTICOLI, FORNITORI E LISTINO.
in un form voglio visualizzare il fornitore, il prezzo e il codice articolo fornitore.
apro un form e passo tramite una variabile il codice dell'articolo.
questa è la routine che ho creato:
codice:Sub CARICA(ByVal ID_ART As String) Dim SQL As String Dim SQL2 As String ID_ARTICOLO = ID_ART Try SQL = "SELECT ID_forn, id_art, prezzo FROM LISTINO_FORNITORI WHERE LISTINO_FORNITORI.id_art='" & ID_ART & "' ORDER BY prezzo;" Dim dataadapter As New SqlDataAdapter(SQL, New SqlConnection(My.Settings.CONN)) Dim ds As New DataSet() dataadapter.Fill(ds, "Listino") SQL2 = "SELECT ID_Fornitore, rag_soc FROM FORNITORI ORDER BY rag_soc" Dim dataadapter2 As New SqlDataAdapter(SQL2, New SqlConnection(My.Settings.CONN)) Dim ds2 As New DataSet() dataadapter2.Fill(ds2, "Fornitori") 'Oggetto per la colonna Cod art. forn. Dim ColumnArtForn As New DataGridViewTextBoxColumn ColumnArtForn.DataPropertyName = "id_art" ColumnArtForn.HeaderText = "Cod art forn" ColumnArtForn.Name = "Cod art forn" 'Oggetto per la colonna Prezzo Dim ColumnPrezzo As New DataGridViewTextBoxColumn ColumnPrezzo.DataPropertyName = "Prezzo" ColumnPrezzo.HeaderText = "Prezzo" ColumnPrezzo.Name = "Prezzo" 'Oggetto di tipo combobox per la gestione del Fornitore Dim ColumnForn As New DataGridViewComboBoxColumn() With ColumnForn .DataPropertyName = "rag_soc" .HeaderText = "rag_soc" .MaxDropDownItems = 5 .FlatStyle = FlatStyle.Flat .DataSource = ds2.Tables("Fornitori") .ValueMember = "ID_Fornitore" .DisplayMember = "rag_soc" End With 'tramite il metodo insert della proprietà columns aggiungo le colonne create in precedenza DataGridView1.Columns.Insert(0, ColumnForn) DataGridView1.Columns.Insert(1, ColumnArtForn) DataGridView1.Columns.Insert(2, columnPrezzo) 'riempio la griglia DataGridView1.DataSource = ds DataGridView1.DataMember = "listino" Catch ex As Exception MessageBox.Show(ex.Message) Finally End Try End Sub
Con questo codice visualizzo i record: la combo con tutti i fornitori, il codice art. forn. e il prezzo.
Come potete vedere ho 2 dataset, uno dove ho caricato tutto il listino e l'altro o l'elenco di tutti i fornitori
PROBLEMA 1:
nel primo dataset e query trovo anche il codice del fornitore, vorrei che in automatico si selezioni, nella colonna combo, il fornitore con lo stesso ID. Ora la combo si popola pero non è selezionato nessun elemento.
PROBLEMA 2:
quando carico il datagridview con l'istruzione
DataGridView1.DataMember = "listino"
mi aggiunge anche la colonna con l'id_Fornitore, come posso evitare questo inconveniente?
Grazie
Ciao a tutti

Rispondi quotando