Creazione Relazione in SQL DataBase Access

domenica 14 dicembre 2008 - 15.40

ventu Profilo | Newbie

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 :SQL

--------------------------------------------------------------------------------

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. (non so se è corretta la stringa ma vorrei creare una relazione 1 Utente molti AccessiSalvati)
Codice sorgente SQL:
--------------------------------------------------------------------------------

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

--------------------------------------------------------------------------------



Mi da errore dicendo che la sintassi è errata.

Codice in c# :
--------------------------------------------------------------------------------

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";
OleDbConnection con = New OleDbConnection(myConnString);
DateTime data = DateTime.Now;
String NomeTabella = data.Month.ToString() +"."+ data.Year.ToString();
String sql = "Select * FROM " + NomeTabella;
OleDbCommand cmd = New OleDbCommand(sql, con);
Try
{
If (con.State != ConnectionState.Connecting)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
Catch
{
//Try
//{
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)";
cmd = New OleDbCommand(sql, con);
cmd.ExecuteNonQuery();
//}
//Catch
//{
// lbl.Text = "Conttare l'amministratore del sistema Impossibile inizializzare nuovo mese!";
//}
}
Finally
{
If (con.State != ConnectionState.Connecting)
{
con.Close();


}
}


--------------------------------------------------------------------------------



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.

alx_81 Profilo | Guru

>Salve.
Ciao!
Per creare un constraint Foreign Key devi passare dallo statement ALTER TABLE:
http://office.microsoft.com/en-us/access/HP010322071033.aspx

E poi guardarti per bene la clausola CONSTRAINT:
http://office.microsoft.com/en-us/access/HP010322141033.aspx

Considerate due tabelle T1 e T2, dove T2 ha un campo IDT1 di relazione con T1, il comando sarà come il seguente:

ALTER TABLE T2 ADD FOREIGN KEY (IDT1) REFERENCES T1(ID)

>Grazie in anticipo a tutti.
Di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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