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