if (tid == null) { ikke.Text = "Ingen tidspunkter fundet i databasen indenfor denne time : " + DateTime.Now.Hour; } else { test.Text = "Vi sammenligner " + DateTime.Now.Hour + " med " + tid.Hour + " de er faktisk " + DateTime.Now + " og " + tid; }
reader.Close(); ObjConn.Close();
Fejlen kommer ved:
System.DateTime tid = null;
hvis jeg holder musen over siger den:
cannot convert null to 'system.datetime' because it is a non-nullable value type.
og der kommer også fejl her:
tid = reader[0];
hvis jeg holder musen over siger den:
cannot implicitly convert type 'object' to 'system.datetime'. An explixit conversion exists (are you missing a cast?)
Så ved i hvad jeg gør forkert? Og ved i hvordan jeg undgår fejlen? Håber også i forstår hvad jeg mener?
Ja ok, så fjernede jeg ihvertfald de fejl, men så kom der en ny nede i min if sætning:
test.Text = "Vi sammenligner " + DateTime.Now.Hour + " med " + tid.Hour + " de er faktisk " + DateTime.Now + " og " + tid;
der er en rød streg ved:
tid.Hour
Den siger: system.nullable<system.datetime> does not contain a definition for 'Hour' and no extension method 'Hour' acepting a first arguement of type system.nullable<system.datetime> could be found (are you missing a using directive or an assembly reference?)
Ok tak, nu kommer der ihvertfald ikke fejl i det mere. Men ved du hvad fejlen kan være nu.
Der var en som hjalp mig med at lave en stored procedure i sql forummet, og han hjalp mig også med lidt kodning, men han skrev normalt i vb sagde han og jeg skriver jo i c# Så det kan godt være at han havde lavet nogle fejl, og jeg har prøvet at ændre det til c# så godt som jeg kunne, men ved ikke om det er helt rigtigt.
while (reader.Read()) { tid = (DateTime)reader[0]; }
if (tid == null) { ikke.Text = "Ingen tidspunkter fundet i databasen indenfor denne time : " + DateTime.Now.Hour; } else { test.Text = "Vi sammenligner " + DateTime.Now.Hour + " med " + tid.Value.Hour + " de er faktisk " + DateTime.Now + " og " + tid; }
Jeg tror ikke helt det kan være det. Fordi jeg har min connectionstring over pageload, så den burde også virke hernede. Men nu har jeg da taget den herned også, men det virker stadig ikke.
Kan det være noget med at det skal stå i stored procedure eller et eller andet?
Nu ser min kode sådan her ud:
SqlConnection objconn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ToString());
while (reader.Read()) { tid = (DateTime)reader[0]; }
if (tid == null) { ikke.Text = "Ingen tidspunkter fundet i databasen indenfor denne time : " + DateTime.Now.Hour; } else { test.Text = "Vi sammenligner " + DateTime.Now.Hour + " med " + tid.Value.Hour + " de er faktisk " + DateTime.Now + " og " + tid; }
// connection ved navn objconn som har en connection string SqlConnection objconn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ToString()); // connection ved navn ObjConn som ikke her connection string SqlConnection ObjConn = new SqlConnection(); // du bruger ObjConn
brug:
SqlConnection ObjConn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ToString());
while (reader.Read()) { tid = (DateTime)reader[0]; }
if (tid == null) { ikke.Text = "Ingen tidspunkter fundet i databasen indenfor denne time : " + DateTime.Now.Hour; } else { test.Text = "Vi sammenligner " + DateTime.Now.Hour + " med " + tid.Value.Hour + " de er faktisk " + DateTime.Now + " og " + tid; }
Det som skal ske for brugerne er at når system tiden for eksempel er klokken 15:00, og hvis der er noget på programmet den dag klokken 15:00 så skal der komme en rød prik ud for den program som har den samme tid som systemtiden, og der skal den være indtil næste program starter.
Ok det vil jeg prøve. Men der kommer en fejl ved Boolean.
Den siger: the type or namespace name boolean could not be found (Are you missing a using directive or an assembly refference?)
Og så lige et andet spørgsmål, nu står der faktisk kun start tidspunkter i min db. Ville man godt kunne gøre så den røde prik bare rykker ned til det næste punkt når næste program starter, så man ikke behøver en sluttid? eller ville det være optimalt at oprette en ny collonne i db til sluttid?
Og der hvor der står: reddot efter boolean, skal det udskiftes med et billede eller hvordan finder den bare en rød prik?
Ja ok, nu kommer der ihvertfald ikke fejl ved bool mere :-D
Men så havde jeg også lige et andet spørgsmål som vidst lige blev glemt at svare på:
nu står der faktisk kun start tidspunkter i min db. Ville man godt kunne gøre så den røde prik bare rykker ned til det næste punkt når næste program starter, så man ikke behøver en sluttid? eller ville det være optimalt at oprette en ny collonne i db til sluttid?
DateTime now = DateTime.Now; objcmd.CommandText = "SELECT tid FROM PROGRAM WHERE CONVERT(VARCHAR, date, 105) = CONVERT(VARCHAR, GETDATE(), 105"; SqlDataReader rdr = objcmd.ExecuteReader();
Men der sker heller ikke noget, så jeg kan ikke se om koden virker. Men nu kommer næste skridt vel ik? Nu skal der jo ske noget tiden er den samme som systemtiden.
Nej men den kode der står der, trækker dagens program ind på siden, og den kode du gav mig skulle så finde ud af om der var et tidspunkt på siden som var det samme som system tiden og så indsætte en rød prik ud fra det.
Her er koden for hele siden, så du kan se hvordan det hele ser ud:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; using System.Configuration; using System.Collections; using System.Web.Security; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page { SqlConnection ObjConn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ToString());
while (rdr.Read()) { DateTime starttid = (DateTime)rdr[0]; DateTime sluttid = starttid.AddHours(1); string txt = (string)rdr[1]; bool reddot = starttid <= now && now < sluttid;
} rdr.Close(); ObjConn.Close();
}
}
Det er alt koden på codebehind siden, så det kode der står til sidst, det er det du gav mig. Men det er ikke det der trækker teksten ind på siden fra min db.
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.