06. marts 2007 - 11:35Der 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?
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.
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.
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
Jeg lægger et svar - det skulle så give dig muligheden :o) Mvh
Synes godt om
Ny brugerNybegynder
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.