Buondì a tutti voi del forum.
Ricevo un errore di "Index non compreso nell'intervallo Richiesto valore non negativo o inferiore alla raccolta" e non riesco a capire se imputarlo alla gestione della gridview (ma sembra di si menzionando la raccolta) o al dataset.
In pratica devo popolare una datagrid senza utilizzare il bindingsource.
la tabella "dettaglioOfferta" nel database ha i seguenti campi:
iddettaglioOffCliente
idoffcliente
codoffertacli
brand_grezzo
brand_pulito
pnCliente
qta
Descrizione
pnhit
status
Ma nella datagridview devo popolare solo alcuni:
id riga | brand_grezzo | brand_pulito | pnCliente |qta |Descrizione |pnhit |status|
Allora mi sono avventurato in 2 cicli For (uno per le righe e uno per le colonne) ma come dicevo non so se ho ponderato bene gli estremi di fine ciclo perchè appunto mi da gli errori di indice come se fossi fuori range.
Private Sub CaricaDettaglio(code As String)
Dim detailsAdapter As New MySqlDataAdapter
Dim detailsDataset As New DataTable
Dim detailsSource As New BindingSource
Dim cmddettaglio As New MySqlCommand
Using Conndetails As New MySqlConnection(stringaConn)
Conndetails.Open()
Try
Dim query As String
query = "Select * from dettagliooffcliente WHERE codoffertacli = '"& code & "'"
cmddettaglio = New MySqlCommand(query, Conndetails)
detailsAdapter.SelectCommand = cmddettaglio
detailsAdapter.Fill(detailsDataset)
detailsSource.DataSource = detailsDataset
' dgdettaglio.DataSource = detailsSource
detailsAdapter.Update(detailsDataset)
MessageBox.Show(detailsDataset.Rows.Count)
For i As Integer = 0 To detailsDataset.Rows.Count - 1
For col As Integer = 0 To 7
dgdettaglio.Rows(i).Cells(col).Value = i 'per sapere solo numero righe dettaglio
dgdettaglio.Rows(i).Cells(col).Value = detailsDataset.Rows(0).Item("brand_grezzo")
dgdettaglio.Rows(i).Cells(col).Value = detailsDataset.Rows(0).Item("brand_pulito")
dgdettaglio.Rows(i).Cells(col).Value = detailsDataset.Rows(0).Item("pncliente")
dgdettaglio.Rows(i).Cells(col).Value = detailsDataset.Rows(0).Item("qta")
dgdettaglio.Rows(i).Cells(col).Value = detailsDataset.Rows(0).Item("Descrizione")
dgdettaglio.Rows(i).Cells(col).Value = detailsDataset.Rows(0).Item("pnhit")
dgdettaglio.Rows(i).Cells(col).Value = detailsDataset.Rows(0).Item("status")
Next
Next
dgdettaglio.Columns("brand_grezzo").HeaderText = "Brand Grezzo"
dgdettaglio.Columns("brand_pulito").HeaderText = "Brand Pulito"
dgdettaglio.Columns("pnCliente").HeaderText = "P/N CLiente"
dgdettaglio.Columns("qta").HeaderText = "Quantità"
dgdettaglio.Columns("Descrizione").HeaderText = "Descrizione"
dgdettaglio.Columns("pnhit").HeaderText = "P/N HIT"
dgdettaglio.Columns("status").HeaderText = "Status"
dgdettaglio.Columns(0).Visible = False
dgdettaglio.Columns(1).Width = 130
dgdettaglio.Columns(2).Width = 100
dgdettaglio.Columns(3).Width = 100
dgdettaglio.Columns(4).Width = 100
dgdettaglio.Columns(5).Width = 70
dgdettaglio.Columns(6).Width = 150
' dgdettaglio.Columns(7).Width = 100
' dgdettaglio.Columns(8).Width = 100
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
Conndetails.Dispose()
End Try
End Using
End Sub
grazie per le vostre dritte...
sanzweb