19. september 2007 - 10:46Der er
46 kommentarer og 1 løsning
ikke allow overbooking
Hej eksperter,
Jeg har en calendar og en RadioButtomList.
calendar henter dato og radio har tidspunkter..
database tabellen henter, bookingDate, timeID(fra time tabellen) og customerID(fra customer tabellen).
Det skal være sådan at man ikke kan booke en dato og tid som allerede er booket, så jeg skal hente information fra booking date/time, som kan gøre datoen(hvis alle tider er optaget) eller radiobutton'en "død" hvis den er optaget, det skal laves i DayRender som jeg har oprettet, men hvad skal der stå der inde i for det kommer til at virke? eller hvordan skal jeg gribe det an?
har en stored procedure som henter info fra tabellen via SELECT.. (ReadBooking)
DateTime.Today burde kompilere uanset hvor du har den... Men ja den skal i din CalendarDate_DayRender() for at have den ønskede effekt på din kalender.
men har jo også det sidste hvor den skal tjekke i databasen om der er optaget eller ej efter den der calendar og bulletList:
protected void CalendarDate_DayRender(object sender, DayRenderEventArgs e) { DAL dal = new DAL();
SqlDataReader dr = dal.GetReader("ReadBooking");
if (dr.HasRows) { dr["BookingID].ToString(); dr["BookingDate].ToString(); dr["TimeID].ToString(); dr["CustomerID].ToString(); } }
Skal på en eller anden måde bruge den overstående information, så den kan se om der er booked på den pågældende dag på den pågældende tidspunkt, hat kigget på msdn2 men hjælper ikke..
den er gemt som varchar(50) men er de tikke stadig muligt at lave på den måde næsten? ..og den der metode går da ikke ind og læser på hvert af tidspunkterne?
under det sidste e.Day kommer der fejl under E'et: "kan ikke tildeles værdi System.Web.UI.WebControls.CalendarDay.IsSelected, da egenskaben er skrivebeskyttet"
Når jeg prøver at oprette en booking kommer den med følgende fejl: "The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. The statement has been terminated."
og når jeg indsætter det kode du sagde siger den dette: "Procedure or function 'ReadBooking' expects parameter '@BookingID', which was not supplied. "
Er der ikke noget helt galt i min database eller noget nu?
regner jeg med, men heller ikke det vigtigste nu, bare underligt der kom fejl efter jeg ændrede den til datetime, som om calendar ikke laver det rigtigt
Jo nu kan den indsætte igen, synes bare den der fejl med det Stord procedure er underlig for databasen og procedueren er jo lavet rigtig? og i DataAccesLayer er det jo bare en standart DataReader.
Med det første 4 linjer i din SP fortæller du at du har i sinde at kalde den med 4 parametre: BookingID, BookingDate, TimeID og CustomerID. Det gør du bare ikke, og det brokker den sig over.
hvorfor skal der where på time? det er jo for hver dag den skal se hvor mange TimeID der er booket? og så derfra sige om radioButton skal være selected = false; eller true; og så hvis alle er false skal den lave selected = false; på calendar datoen?
1) Giver din SELECT dig samtlige data hver gang du kalder den, og: 2) Så skal du slet ikke bruge dine parametre til noget - de kan undværes.
Parametre er argumenter til din SP - altså inddata; de er ikke nødvendige for at du kan trække noget ud. '*' burde sørge for at du fil samtlige cokonner ud.
Forstår dig godt, men kan bare ikke få den til det, men bookingen er vel delvistløst nu, så vil ikke tage mere af din tid, smid et svar og du får dine point,
og selvfølgelig mange tak for hjælpen!! smider også lige karma
Du har nogle parametre i din _parameters men de bliver jo aldrig assignet nogen værdi i den viste kode. En af dem - den der svare til BookingDate - skal have sat sin .Value til værdien af e.Day.Date. Hus også at denne parameter skal være defineret til at være af typen SqlDbType.DateTime.
jeg har lavet det på en lidt anden måde, men lidt hjælp fra en, som sagde det skulle gøres sådan og sådan, så nu virker det næsten, men mange tak for rådene, de har været uundværlige!
Tak for tilbagemeldingen ... det ser man desværre ikke så til her på E.
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.