Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Salvare dati su tre tabelle da un
Forum - C# / VB.NET - Salvare dati su tre tabelle da un

Avatar
DjDarkPrince87 (Normal User)
Newbie


Messaggi: 5
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 17:50
Lunedì, 18/05/2009
Questo topic è stato chiuso dal moderatore

Salve ragazzi sono appena entrato a far parte della ciurma e voglio subito mettermi al lavoro assieme a voi.. ho un problema che non riesco a risolvere in quanto non ho trovato guide al riguardo.. il professore ci ha dato un compito.. quello di creare una tabella con la seguente struttura:

1° Tabella: CDMUSICALI (CD_ID, TITOLO, DURATA, PREZZO, ID_AUTORE, ID_CASAMUSICALE, POSIZIONE, DATA_USCITA)

2°Tabella: AUTORE (AU_ID, NOMINATIVO, NAZIONALITà)

3°Tabella: CASADISCOGRAFICA (DI_ID, NOME, CITTà)

Adesso le tabelle sono così relazionate:

CD_ID è di tipo contatore, ID_AUTORE è intero lungo, ID_CASAMUSICALE è intero lungo, AU_ID è di tipo contatore, DI_ID è anch'esso di tipo contatore.

Ora DI_ID è relazionato con ID_CASAMUSICALE e AU_ID è relazionato con
ID_AUTORE.

Adesso il tutto i campi sono immessi in un singolo form nel quale devo effettuare il salvataggio , la modifica, la cancellazione, la ricerca e la lista.
Verrebbe più facile dividere il programma in tre form.. questo lo so ma mi interessava sapere come effettuare una simile operazione..  Adesso ho letto su nternet che non si possono effettaure inserimenti multipli con insert into su più tabelle in maniera continua..però non sono riuscito a reperire nessun codice al riguardo.. vi sarei molto grato se qualcuno di voi mi aiutasse in questo dilemma;)Vi ringranzio per ogni vostro eventuale aiuto in merito.grazie..

Ultima modifica effettuata da DjDarkPrince87 il 18/05/2009 alle 17:54
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:56
Lunedì, 18/05/2009
Basta mantenere la connessione e l'adapter in comune tra i form, ad esempio mettendoli in un modulo e dichiarandoli come campi o proprietà pubbliche. Lo stesso vale se stai usando Linq, rendendo la connessione e il data context pubblici.
Per il resto, si tratta solo di dividere i controlli tra le varie finestre.

PM
Avatar
DjDarkPrince87 (Normal User)
Newbie


Messaggi: 5
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 18:09
Lunedì, 18/05/2009
Ok.. ma scusa se magari te lo chiedo.. siccome io sono ancora novellino in queste cose.. se ti posto in allegato il programma che sto creando.. mi potresti fare un'esempio di inserimento tramite il modulo.. io uso il modulo per la connessione ma non so ancora gestir bene..ti ringrazio :)

P.S: in allegato il programma da me fatto..


Ultima modifica effettuata da DjDarkPrince87 il 18/05/2009 alle 18:17
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:15
Lunedì, 18/05/2009
Non hai allegato nulla.
Un esempio:
Codice sorgente - presumibilmente VB.NET

  1. Module Globals
  2.   Public Connection As OleDb.OleDbConnection 'o sql, dipenda da cosa usi
  3.   Public Adapter As OleDb.OleDbDataAdapter
  4. End Module


Essendo il modulo per sua natura statico, queste variabili sono condivise da tutta l'applicazione.

PM
Avatar
DjDarkPrince87 (Normal User)
Newbie


Messaggi: 5
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 18:21
Lunedì, 18/05/2009
Va bene per la connessione..;) scusa siccome era .rar non me lo ha caricato..ecco l'allegato.. per lo più volevo sapere come fare l'insemriento da modulo sulle tabelle..che non saprei come fare..

Edit: Edito perché mi sono spiegato male.. in sostanza vorrei fare più query concatenate fra di loro ma non so come si fa.. non mi riescono con tutto che ora sto uscendo pazzo su internet.. se qualcuno di voi me le potesse spiegare a livello di codice sulla base del mio programma gli sarei veramente grato. :D

Metto del codice per far capire meglio ovviamente cosa voglio fare..


Codice sorgente - presumibilmente VB.NET

  1. Dim db As New OleDb.OleDbConnection(Connessione)
  2.     Dim cmd As New OleDb.OleDbCommand(Sql, db)
  3.     Dim tb As OleDb.OleDbDataReader
  4.     Dim Sql As String
  5. Dim Connessione As String
  6.  Connessione = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\NoleggioCD.mdb;User ID=;Password=;"  
  7. Try
  8.                     Sql = "INSERT INTO tblCDMUSICALI(TITOLO, DURATA, PREZZO, POSIZIONE, DATA_USCITA)"
  9.                     Sql = Sql & "VALUES('" & CorreggiApice(Me.txtTitolo.Text) & "', '" & CorreggiApice(Me.txtDurata.Text) & "'"
  10.                     Sql = Sql & ", '" & CorreggiApice(Me.txtPrezzo.Text) & "', '" & CorreggiApice(Me.txtPosizione.Text) & "'"
  11.                     Sql = Sql & ", '" & CorreggiApice(Me.txtDataUscita.Text) & "');"  & _
  12.                     "INSERT INTO tblAUTORE (NOMINATIVO, NAZIONALITÀ)"
  13.                     Sql = Sql & "VALUES ('" & CorreggiApice(Me.txtNominativo.Text) & "', '" & CorreggiApice(Me.txtNazionalità.Text) & "')"
  14.                 Catch ex As Exception
  15.                     MsgBox(ex.Message)
  16.                 End Try



La prima funziona se togliendo & _ e la prossima query.. non so in pratica come creare un'altra query..


DjDarkPrince87 ha allegato un file: NoleggioCDMUsicali.zip (122748 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da DjDarkPrince87 il 18/05/2009 alle 21:40
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:29
Giovedì, 21/05/2009
Basta eseguire le due query una dopo l'altra:
Codice sorgente - presumibilmente Plain Text

  1. dbAdapter.ExecuteNonQuery(Query1)
  2. dbAdapter.ExecuteNonQuery(Query2)


PM
Avatar
DjDarkPrince87 (Normal User)
Newbie


Messaggi: 5
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 20:08
Domenica, 24/05/2009
Grazie Totem ho risolto :) thankssss!!

PM