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 - Creazione Relazioni SQL (Access)
Forum - C# / VB.NET - Creazione Relazioni SQL (Access)

Avatar
ventu (Normal User)
Newbie


Messaggi: 17
Iscritto: 10/12/2008

Segnala al moderatore
Postato alle 15:34
Domenica, 14/12/2008
Salve.

sto cercando di effettuare un sito di gestione di una azienda:
-Firme entrata
-Firme Uscita
Per non sovracaricare troppo il database durante le ricerce ho deciso che ogni mese venga creata una nuova tabella. Fin qui tutto bene.
Il problema sorge qundo vado a inserire le relazioni fra tabelle:
Codice sorgente - presumibilmente C# / VB.NET

  1. CREATE TABLE 12/2008(ID integer IDENTITY PRIMARY KEY,IDUtente integer IDENTITY ,EntrataM datetime,UscitaM datetime,EntrataP datetime,UscitaP datetime,EntrataS datetime,UscitaS datetime)



Fin qui funziona il problema č qundo inserisco la relazione.

Codice sorgente - presumibilmente Plain Text

  1. CONSTRAINT FK_Mese  FOREIGN KEY(IDUtente)REFERENCES Utenti(ID)



Mi da errore dicendo che la sintassi č errata.

Codice in c# :

Codice sorgente - presumibilmente VB.NET

  1. string myConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\ventu\Documenti\Visual Studio 2005\WebSites\Acessi\App_Data\Accessi.mdb";
  2.         OleDbConnection con = new OleDbConnection(myConnString);
  3.         DateTime data = DateTime.Now;
  4.         string NomeTabella = data.Month.ToString() +"."+ data.Year.ToString();
  5.         string sql = "SELECT * FROM " + NomeTabella;
  6.         OleDbCommand cmd = new OleDbCommand(sql, con);
  7.         try
  8.         {
  9.             if (con.State != ConnectionState.Connecting)
  10.             {
  11.                 con.Open();
  12.                 cmd.ExecuteNonQuery();
  13.             }
  14.         }
  15.         catch
  16.         {
  17.             //try
  18.             //{
  19.                 sql = "CREATE TABLE " + NomeTabella + "(ID integer IDENTITY PRIMARY KEY,IDUtente integer IDENTITY ,EntrataM datetime,UscitaM datetime,EntrataP datetime,UscitaP datetime,EntrataS datetime,UscitaS datetime)CONSTRAINT FK_Mese  FOREIGN KEY(IDUtente)REFERENCES Utenti(ID)";
  20.                 cmd = new OleDbCommand(sql, con);
  21.                 cmd.ExecuteNonQuery();
  22.             //}
  23.             //catch
  24.             //{
  25.             //    lbl.Text = "Conttare l'amministratore del sistema Impossibile inizializzare nuovo mese!";
  26.             //}
  27.         }
  28.         finally
  29.         {
  30.             if (con.State != ConnectionState.Connecting)
  31.             {
  32.                 con.Close();
  33.  
  34.  
  35.             }
  36.         }



Questa parte di codice effettua un controllo sull'esistenza della tabella, se la tabella non esiste ne crea una nuova.

Grazie in anticipo a tutti.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:50
Domenica, 14/12/2008
Io non conosco bene sql, ma non dovrebbero esserci due istruzioni separate, una che crea la tabella, e una che la altera aggiungendo il vincolo? Se non fosse cosė, puoi comunque provare a vedere se non compare pių l'errore.

PM Quote
Avatar
ventu (Normal User)
Newbie


Messaggi: 17
Iscritto: 10/12/2008

Segnala al moderatore
Postato alle 17:52
Domenica, 14/12/2008
Quindi mi suggerisci prima di fare :
-CREATE TABLE(creazione tabella)
-ALTER TABLE(creazione relazione)

Ora provo poi ti faccio sapere.

Ti ringrazio ciao.

PM Quote