Avatar billede jhoumann Nybegynder
06. marts 2007 - 11:35 Der er 4 kommentarer og
1 løsning

Manuel læsning af Access-Database

Sidder lige og roder med et kalender-system hvor jeg skal læse en access-DB inden jeg udskriver en calendar. Hver post i DB indikerer at et hus er udlejet.
Har overvejet at læse DB ind i en arrayliste eller lignende.

Jeg regner med at DayRender-funktionen kan anvendes til at markere optaget. Som jeg læser MSDN bliver den kaldt een gang for hver dag i kalenderen. Jeg vil så sammenholde datoen med dato fra DB og markere sammenfald som optaget med rødt.
Har lagt denne kode på siden:
<asp:AccessDataSource  DataSourceMode="DataReader" ID="AccessDataSource1" runat="server" DataFile="~/App_Data/DataBase.mdb"
            SelectCommand="SELECT [Nr], [Dato], [Arrangement], [ReserveretAf], [ReserveretDato], [Bemærkning] FROM [Reservation]" OnSelecting="AccessDataSource1_Selecting">
        </asp:AccessDataSource>

Spørgsmål: Hvordan får jeg åbnet og læst posterne, inden DayRender bliver kaldt?
Skal jeg bruge en DataReader?
Avatar billede snepnet Nybegynder
06. marts 2007 - 12:25 #1
Hensigten med en datasource control er, at være link imellem en datakilde og en præsentationskontrol, og jeg ville nok ikke benytte mig af sådan en i dit tilfælde.

Hvis du gerne vil hive indholdet fra din database op i en liste i memory - kan du gøre sådan lidt mere OO'sk med noget i stil med nedenstående:

List<Reservation> reservations = new List<Reservation>();

OleDbConnection connection = new OleDbConnection("<Connection string>");
OleDbCommand command = new OleDbCommand("select .....", connection);
OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

while (reader.Read())
{
    reservations.Add(new Reservation((string)reader["ReserveretAf"]));               
}

reader.Close();

En reservation kunne så se sådan her ud:

public class Reservation
{
    private string m_ReservedBy;

    public string ReservedBy
    {
        get { return m_ReservedBy; }
    }

    public Reservation(string reservedBy)
    {
        m_ReservedBy = reservedBy;
    }
}

Du skal self. have nogle flere properties med, men jeg håber du kan se idéen.

Mvh
Avatar billede jhoumann Nybegynder
06. marts 2007 - 12:36 #2
Du har nok ret, men hvad betyder så: OnSelecting="AccessDataSource1_Selecting">
Er det ikke en reference til en metode? Jeg synes forklaringen i MSDN er lidt misvisende.
Avatar billede snepnet Nybegynder
06. marts 2007 - 13:13 #3
Når datasource kontrollen kalder select på den underliggende datakilde, så hæver den et event. Det event har du så abboneret på, og skrevet at du ønsker at få kaldt en metode der hedder AccessDataSource1_Selecting.
Mvh
Avatar billede jhoumann Nybegynder
06. marts 2007 - 13:20 #4
Ok, jeg har lavet det på gammeldags facon. Hvordan er det nu lige jeg giver point?
Avatar billede snepnet Nybegynder
06. marts 2007 - 13:42 #5
Jeg lægger et svar - det skulle så give dig muligheden :o)
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester