2009-06-30 4 views
4

Je suis un débutant avec C#, ASP.NET, SQL Server Express et la programmation en général. J'essaie de faire un calendrier en ligne (sur une date limite). Je vais lire tous les autres posts qui sont similaires, mais pour l'instant j'ai une question qui, je l'espère, me mettra sur la bonne voie.Meilleures pratiques pour un schéma de base de données de calendrier?

Quelles sont les étapes à suivre pour lier un calendrier à une base de données? Des exemples d'où/comment cela a été fait seraient grandement appréciés?

Je vois des pièges possibles quand une date a plus d'une entrée par différents utilisateurs, donc si quelqu'un sait comment cela est géré à nouveau, je suis tout ouïe.

Répondre

1

Je vous ai écrit un petit exemple qui montre

  1. Connexion à un serveur SQL Express
  2. données de lecture
  3. Sélection dates multiples (soit plus d'un d'entrée de date par les différents utilisateurs)

Hope this helps! ...

// The SQL connection object to connect to the database. Takes connection string. 
SqlConnection connection = 
    new SqlConnection(@"Data Source=localhost\SQLEXPRESS;Initial Catalog=Example"); 

// Idealy you wouldnt pass direct SQL text for injection reasons etc, but 
// for example sake I will enter a simple query to get some dates from a table. 
// Notice the command object takes our connection object... 
SqlCommand command = new SqlCommand("Select [Date] From Dates", connection); 

// Open the connection 
connection.Open(); 

// Execute the command 
SqlDataReader reader = command.ExecuteReader(); 

// A list of dates to store our selected dates... 
List<DateTime> dates = new List<DateTime>(); 

// While the SqlDataReader is reading, add the date to the list. 
while (reader.Read()) 
{ 
    dates.Add(reader.GetDateTime(0)); 
} 

// Close the connection! 
connection.Close(); 

// Use the selected dates property of the ASP.NET calendar control, add every 
// date that we read from the database... 
foreach (DateTime date in dates) 
{ 
    Calendar1.SelectedDates.Add(date); 
} 

Bonne chance!

1

J'sais si cela est de toute aide, mais CodeProject semble avoir une solution similaire

+0

Merci. Je vais rester coincé à lire leur exemple – RocketGoal

0

Je vous avais recommandé de trouver un couple de applications de calendrier open source libres et en regardant leurs schémas.

MojoPortal et DotNetNuke Events semblent tous deux avoir des portions de calendrier.

Vous allez avoir un énorme départ et éviter des erreurs de base.

0

On dirait que quelqu'un a déjà posé cette question. Laying out a database schema for a calendar application

Un conseil est d'utiliser des champs entiers au lieu de champs datetime. Ils vont courir plus vite. N'ayez pas peur de dénormaliser vos tables. Vous pouvez donc avoir une colonne de date, une colonne d'année, une colonne de mois et une colonne de jour.