DataGrid

venerdì 17 ottobre 2008 - 10.52

supergamma Profilo | Newbie

Ho creato un codice in VB.NET per aprire un database, trovare i record, e tutto funziona correttamente.
Il database è in Access, composto da due tabelle ossia: "TArticoli" e "Seriale"
la tabella "TArticoli" contiene questi campi:
"IDArticolo" campo numerico
"Descrizione" campo testo

la tabella "Seriale" contiene questi campi:
"IDArticolo" campo numerico
"NumeroSeriale" campo testo

Le due tabelle sono collegate in ACCESS da una relazione UNO A MOLTI ossia:
TArticoli.IDArticolo con Seriale.IDArticolo

Con VB.Net apro la tabella "Seriale" ed inserisco i record e va bene, ma aprendo tale tabella, sempre con VB.NET, vengono visualizzati i valori numeri del campo "IDSeriale".

Come potrei visualizzare le "Descrizioni" ad ogni "IDSeriale"???

In Access semplice sono andato nella struttura della Tabella "Seriale" e nel campo "IDArticolo" ho messo come origine dati la tabella "TArticoli" creando la query, e va se apro la tabella "Seriale" nel campo "IDArticolo" visualizzo le descrizioni degli articoli, presi dalla tabella "TArticoli".

In VB.NET come devo fare!
Grazie a tutti Voi, un saluto a tutti anche se non conosco nessuno.

Dainesi Profilo | Senior Member

In VB.NET devi semplicemente riempire il DataSet che alimenta il tuo DataGrid con una query che interroga i dati delle due tabelle tramite una Join.

supergamma Profilo | Newbie

Grazie per aver risposto, ho fatto una JOIN e va tutto bene.

Ma ora vengono visualizzati in VB.NET nella DATAGRID sia i valori numeri della Tabella
"TArticoli" e sia "Seriale".

Vorrei che i valori numerici vengono sostitui dalle descrizioni.

Dainesi Profilo | Senior Member

Prova a sostituire il tuo codice con questo.

'A livello di Classe
Dim dsDatPubs As New DataSet
Dim daAdaptSql As New OleDbDataAdapter

...


'A livello di sub aggiorna griglia
Dim strSQL As String
Dim cmd As New OleDbCommand

Try
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor

'Ripulisco la Table
If dsDatPubs .Tables.CanRemove(dsDatPubs .Tables("Articoli")) Then
dsDatPubs .Tables.Remove("Articoli")
End If

strSQL = "SELECT IDArticolo, articolo,fornitore data, numero, seriale FROM TArticoli, pcemail_seriale WHERE IDArticolo=articolo"

cmd.CommandText = strSQL
If con.State = ConnectionState.Closed Then con.Open()
cmd.Connection = con
daAdaptSql .SelectCommand = cmd

'Popolo la Table
dgDataGrid_SN.DataSource = Nothing
If dsDatPubs.Tables.CanRemove(dsDatPubs .Tables("Articoli")) Then
dsDatPubs.Tables.Remove("Articoli")
End If
daAdaptSql.Fill(dsDatPubs , "Articoli")
dgDataGrid_SN.DataSource = dsDatPubs.Tables("Articoli")

supergamma Profilo | Newbie

scusa di nuovo e come sempre grazie ma non succede nulla se cambio il codice
ti posto il codice completo

grazie di nuovo

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Dainesi Profilo | Senior Member

Ho giusto 2 domande da farti:

1._ Che versione di Vb.net utilizzi ?
2._ Che formato è eft (fa parte forse del vecchio gestionale DANEA ?)

supergamma Profilo | Newbie

Sia veramente gentilissimo a rispondere, velocemente
Grazie

Il database è in formato access 97 e l'archivio + di danea
Il VB.NET che usa è il Microsoft Visual Basic 2008 Express Edition

Dainesi Profilo | Senior Member

Io purtoppo arrivo sino alla versione 2005 (non ho ancora installato la 2008 ...). Comunque, prova a rinominare il file con l'estensione corretta (magari facendone una copia) e ritenta. Un altro modo sarebbe quello di creare un file Access e allegare le tabelle contenute nel file del gestionale. In questo modo manterresti il collegamento in real time dei dati.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5