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