Ciao a tutti del forum.
Avrei 2 quesiti da porre:
1) Sto cercando di far quadrare il caricamento di una offerta cliente e del suo dettaglio composto da più righe (tipo il classico caso ordine /dettaglio ordine) mediante una Inner Join
I dati me li ha caricati correttamente nel dataset, ma ho un problema nel caricare la gridview in modo ciclico, ovvero non so come riferirmi con un For each ai risultati ottenuti dalla tabella dettaglio offerta.
Non so infatti se usare un costrutto così abbia senso in quanto penso prenda in considerazone tutto il dataset:
For Each dr As DataRow In dt.Rows
dgdettaglio.Rows.Add(dr("iddettaglioOffCliente"), numrighedettaglio, dr("brand_grezzo"), dr("brand_pulito"), dr("pncliente"), dr("qta"), dr("Descrizione"), dr("pnhit"), dr("status"))
next
Caricando manualmente la gridView come nel codice qui sotto mi fa vedere i dati correttamente, ma ovviamente ho bisogno di un sistema che cariche solo le righe del dettaglio offerta in modo ciclico:
Dim cmdCarica As New MySqlCommand
Dim adapter As New MySqlDataAdapter
Dim dt As New DataSet
Using myconn As New MySqlConnection(stringaConn)
myconn.Open()
With cmdCarica
.Connection = myconn
.CommandText = "Select * FROM gesthitsrl.ricoffcliente INNER JOIN gesthitsrl.dettagliooffcliente WHERE ricoffcliente.codoffertacli = '" & txtRDO.Text & "' AND ricoffcliente.idoffcliente = dettagliooffcliente.idoffcliente ; "
End With
adapter.SelectCommand = cmdCarica
dt.Clear()
adapter.Fill(dt)
If dt.Tables(0).Rows.Count = 0 Then
MessageBox.Show("Nessuna Offerta trovata con questo codice!")
myconn.Close()
Exit Sub
Else
txtRDOCLI.Text = dt.Tables(0).Rows(0).Item("codoffertacli")
txtNumRicCliente.Text = dt.Tables(0).Rows(0).Item("NumRicCliente")
txtragsoc.Text = dt.Tables(0).Rows(0).Item("ragsoc")
DataRicRDO.Value = dt.Tables(0).Rows(0).Item("Datains")
deadlineRDO.Value = dt.Tables(0).Rows(0).Item("DataScadenza")********caricamento manuale griddettaglio***********
dgdettaglioOff.Rows.Add(1, dt.Tables(0).Rows(0).Item("brand_grezzo"), dt.Tables(0).Rows(0).Item("brand_pulito"), dt.Tables(0).Rows(0).Item("pnCliente"), dt.Tables(0).Rows(0).Item("qta"), dt.Tables(0).Rows(0).Item("pnhit"), dt.Tables(0).Rows(0).Item("Descrizione"), dt.Tables(0).Rows(0).Item("status"))
dgdettaglioOff.Rows.Add(2, dt.Tables(0).Rows(1).Item("brand_grezzo"), dt.Tables(0).Rows(1).Item("brand_pulito"), dt.Tables(0).Rows(1).Item("pnCliente"), dt.Tables(0).Rows(1).Item("qta"), dt.Tables(0).Rows(1).Item("pnhit"), dt.Tables(0).Rows(1).Item("Descrizione"), dt.Tables(0).Rows(1).Item("status"))****************************************************
End If
myconn.Dispose()
dt.Dispose()
dt = Nothing
adapter.Dispose()
adapter = Nothing
End Using
End If
2) nel caricamento dei campi della gridview l'ultima colonna "status" non è adiacente in realtà agli altri campi ma è dopo 3 campi lasciati in bianco per permettere al cliente di inserire delle note un prezzo e un altro dato...
Come faccio ad assegnare alla colonna "status" il dato corretto proveniente dal dataset con il metodo add (se è possibile):
dgdettaglioOff.Rows.Add(1, campo1, campo2, campo3......campo7, status)
grazie per i suggerimenti che vorrete espormi.
SanzWeb