Avatar billede sbaht Nybegynder
23. marts 2006 - 08:27 Der er 18 kommentarer og
1 løsning

Records der er registreret de sidste 24 timer.

Jeg skal kunne hente alle de records der er registreret i løbet af de sidste 24 timer, har lidt problemer med sql strengen.. Ved ikke helt hvordan jeg skal formulere den.
Avatar billede dr_chaos Nybegynder
23. marts 2006 - 08:52 #1
måske:
SELECT * FROM Tabel WHERE Dato > '"+ DateTime.Now.AddDays(-1) +"'
Avatar billede dr_chaos Nybegynder
23. marts 2006 - 08:52 #2
string sql = "
SELECT * FROM Tabel WHERE Dato > '"+ DateTime.Now.AddDays(-1) +"'";
Avatar billede sbaht Nybegynder
23. marts 2006 - 09:14 #3
Det fungere fint men den vælger ikke de records som er før kl 00, hvis nu at tidsrummet der skal vælges fra er 24 timer tilbage fra det øjeblik man trykker på knappen. Har Forsøgt: string sql = "
SELECT * FROM Tabel WHERE Time > '"+ DateTime.Now.AddHours(-24) +"'";

Hvilket ikke giver noget andet resultat.
Avatar billede dr_chaos Nybegynder
23. marts 2006 - 12:10 #4
string sql = "
SELECT * FROM Tabel WHERE Time => '"+ DateTime.Now.AddHours(-24) +"'";
Avatar billede sbaht Nybegynder
23. marts 2006 - 12:32 #5
Hvis jeg bruger string sql = "
SELECT * FROM Tabel WHERE Time => '"+ DateTime.Now.AddHours(-24) +"'"; opstår nedenstående fejl.. Kan man ikke definere at alt i mellem kl 8:00 og 8:00 skal udskrives?

Line 1: Incorrect syntax near '>'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Line 1: Incorrect syntax near '>'.
Avatar billede dr_chaos Nybegynder
23. marts 2006 - 12:37 #6
prøv lige med:

string sql = "
SELECT * FROM Tabel WHERE Time >= '"+ DateTime.Now.AddHours(-24) +"'";
Avatar billede sbaht Nybegynder
23. marts 2006 - 12:50 #7
Ok det ser ud til og virke, men dog kun på tiden, der tages ikke forbehold for datoen.
Jeg har prøvet følgende men det virker ikke:

string Sql = "SELECT * FROM dbo.Data WHERE Time >= '"+ DateTime.Now.AddHours(-24) +"' AND Dato >='"+ DateTime.Now.AddDays(-1) +"' ORDER BY Dato";
Avatar billede dr_chaos Nybegynder
04. april 2006 - 08:23 #8
fik du problemet løst ?
Avatar billede sbaht Nybegynder
03. maj 2006 - 13:58 #9
Nej det er stadig ikke løst..
Avatar billede dr_chaos Nybegynder
03. maj 2006 - 15:26 #10
string sql = "SELECT * FROM Tabel WHERE Time >= @DatoNU";

        strConnection = "user id=Rensningslog_Webuser;password=xxxxx;";
        strConnection += "initial catalog=log;server= sqlNY;";
        strConnection += "Connect Timeout=30";

        SqlConnection conn = new SqlConnection(strConnection);
        SqlCommand cmd = new SqlCommand(Sql, conn);
        cmd.Parameters.Add(new SqlParameter("@DatoNU", SqlDbType.DateTime));
cmd.Parameters[0].Value = DateTime.Now.AddDays(-1)
Avatar billede dr_chaos Nybegynder
03. maj 2006 - 15:27 #11
eller
SELECT * FROM Tabel WHERE Time >=DateAdd(dd,-1,getdate())
Avatar billede sbaht Nybegynder
04. maj 2006 - 07:40 #12
Ovenstående giver mig følgende fejl:

Prepared statement '(@Kontrolrum datetime,@DatoNU datetime)SELECT Kontrolrum, Udstyr' expects parameter @DatoNU, which was not supplied.
Avatar billede dr_chaos Nybegynder
04. maj 2006 - 08:01 #13
hvordan ser din kode ud.
Avatar billede sbaht Nybegynder
04. maj 2006 - 08:09 #14
string Sql = "SELECT * FROM dbo.Data WHERE Kontrol=@Kontrol AND Dato >=DateAdd(dd,-1,getdate())";

           
            strConnection = "user id=Webuser;password=XXX;";
            strConnection += "initial catalog=log;server= sqlNY;";
            strConnection += "Connect Timeout=30";

            SqlConnection conn = new SqlConnection( strConnection );
            SqlCommand cmd = new SqlCommand( Sql, conn );
            cmd.Parameters.Add( new SqlParameter( "@Kontrol", DropDownList1.SelectedValue ));
            cmd.Parameters.Add(new SqlParameter("@DatoNU", SqlDbType.DateTime));
            cmd.Parameters[0].Value = DateTime.Now.AddDays(-1);
           
                       
            DataSet ds = new DataSet();
            SqlDataAdapter adpt = new SqlDataAdapter( cmd );
            cmd.Connection.Open();
Avatar billede dr_chaos Nybegynder
04. maj 2006 - 08:12 #15
string Sql = "SELECT * FROM dbo.Data WHERE Kontrol=@Kontrol AND Dato >=DateAdd(dd,-1,getdate())";

         
            strConnection = "user id=Webuser;password=XXX;";
            strConnection += "initial catalog=log;server= sqlNY;";
            strConnection += "Connect Timeout=30";

            SqlConnection conn = new SqlConnection( strConnection );
            SqlCommand cmd = new SqlCommand( Sql, conn );
            cmd.Parameters.Add( new SqlParameter( "@Kontrol",SqlDbType.Varchar,50));
            cmd.Parameters.Add(new SqlParameter("@DatoNU", SqlDbType.DateTime));
cmd.Parameters[0].Value = DropDownList1.SelectedValue;           
cmd.Parameters[1].Value = DateTime.Now.AddDays(-1);
         
                     
            DataSet ds = new DataSet();
            SqlDataAdapter adpt = new SqlDataAdapter( cmd );
            cmd.Connection.Open();
Avatar billede sbaht Nybegynder
04. maj 2006 - 08:46 #16
Det hjalp at tilføje
cmd.Parameters.Add( new SqlParameter( "@Kontrol",SqlDbType.Varchar,50));
så det var åbenbart kontrol=@kontrol der lavede noget ballede.
Tak for hjælpen..:-)
Avatar billede dr_chaos Nybegynder
04. maj 2006 - 08:50 #17
svar :)

Det er altid en god ide at sætte en sqldbtype på parametrene, det mindsker risikoen for fejl
Avatar billede sbaht Nybegynder
04. maj 2006 - 09:07 #18
Ok, det er rart at vide...
Avatar billede dr_chaos Nybegynder
04. maj 2006 - 09:16 #19
jeps :)
Parametre er det bedste at bruge.
Så skal man ikke tænke så meget over at æmdre i indkommende strenge osv.
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