Avatar billede jimmydk Nybegynder
02. september 2008 - 23:58 Der er 11 kommentarer og
1 løsning

søge via dato

Jeg har lidt problemer, og enten er det manglende evner eller også har jeg bare set mig blind på problemet.

Men under alle omstændigheder har jeg brug for lidt hjælp.

Jeg skal hive data fra en access tabel
Jeg har prøvet følgende.

            string dato = Convert.ToString(Request.QueryString["dato"]);
            DateTime dt; dt = Convert.ToDateTime(dato);
            string id = Convert.ToString(Request.QueryString["did"]);
string strSQL = ("Select * from Tabel where Id='" + id + "' and Dato= " + dato + "");

Der er noget på Id og dato men ingen vises

Id    Medlem  Dato        Besked
75    001    10-09-2008  "fdsfadsa fdsfds"

Datatypen er sat til dato.

Problemet er at jeg skal have vist det senere efter datoen i en datalist, så det dur ikke at have det som text.!
Avatar billede jimmydk Nybegynder
02. september 2008 - 23:59 #1
ved godt at "dt;" ikke behøves har bare ikke fået det fjernet :S
Avatar billede arne_v Ekspert
03. september 2008 - 00:53 #2
brug parameters
Avatar billede arne_v Ekspert
03. september 2008 - 00:55 #3
OleDbCommand sel = new OleDbCommand("Select * from Tabel where Id=? and Dato=?", con);
ins.Parameters.Add("@id", OleDbType.Integer);
sel.Parameters.Add("@dt", OleDbType.Date);
sel.Parameters["@id"].Value = id;
sel.Parameters["@dt"].Value = dt;
Avatar billede jimmydk Nybegynder
03. september 2008 - 07:21 #4
Oki der tabte du mig :s

Der var dog en lille fejl i min post men ikke noget som er afgørende

Mine kode er

            string dato = Convert.ToString(Request.QueryString["dato"]);
            DateTime dt = Convert.ToDateTime(dato);
            string id = Convert.ToString(Request.QueryString["did"]);
            OleDbConnection MyConnection = new OleDbConnection();
            //Response.Write(dt);

            MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Databasen.mdb";
            string strSQL = ("Select * from Beskeder where Medlem='" + id + "' and Dato= " + dato + "");

           
            //Response.Write(strSQL);
            OleDbCommand objCommand = new OleDbCommand(strSQL, MyConnection);
            OleDbDataReader objDataReader = null;

            try
            {
                MyConnection.Open();
                objDataReader = objCommand.ExecuteReader();
                while (objDataReader.Read() == true)
                {
                    BeskedT.Text += Convert.ToString(objDataReader["Besked"]);
                }
                objDataReader.Close();
            }
            catch (Exception exept)
            {
                Response.Write(exept);
            }
            MyConnection.Close();

Håber du kan hjælpe :)
Avatar billede jimmydk Nybegynder
03. september 2008 - 07:34 #5
Lidt mere info

Select * from Beskeder where Medlem='001' and Dato= 10-09-2008 00:00:00

System.Data.OleDb.OleDbException: Syntax error (missing operator) in query expression 'Medlem='001' and Dato= 10-09-2008 00:00:00'. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.OleDb.OleDbCommand.ExecuteReader() at SkrivBesked.Vis()

Det kan nok hjælpe til at finde min fejl!
Avatar billede jimmydk Nybegynder
03. september 2008 - 09:33 #6
Nu får jeg ingen fejl

Select * from Dagbog where Medlem='001' and Dato= 10-09-2008
Avatar billede aaberg Nybegynder
03. september 2008 - 09:36 #7
Når du skal køre en sql query som indeholder parametre imod en database, så bør du, som arne_v siger, bruge parameter-funktionaliteten i .NET. Dette giver 2 store fordele. Du slipper problemer som det du har nu, og du sikre din side imod at kunne blive hacket (Parametre puttet direkte ind i en sql query fra en query string er et kæmpe sikkerhedhuld, som super nemt kan hackes via "SQL injection").

I stedet for:
string strSQL = ("Select * from Tabel where Id='" + id + "' and Dato= " + dato + "");

så gør du som arne_v skriver i sin post fra 03/09-2008 00:55:47

Se eventuelt Microsofts dokumentation, her er også nogle eksempler:
http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter.aspx
Avatar billede jimmydk Nybegynder
03. september 2008 - 09:41 #8
Hmm

Jeg må vist til at læse lidt på det :)
Avatar billede jimmydk Nybegynder
03. september 2008 - 10:38 #9
Men et virkende eksempel på det jeg skal have ud, ville hjælpe meget.
Så kan jeg også nemmere rode med hvordan opdatering, indsæt og slet skal laves.

Men skal også være ærlig har intet haft om dette under min udd. som multimediedesigner!
Avatar billede aaberg Nybegynder
03. september 2008 - 11:03 #10
Prøv dette:

string dato = Convert.ToString(Request.QueryString["dato"]);
DateTime dt = Convert.ToDateTime(dato);
string id = Convert.ToString(Request.QueryString["did"]);
OleDbConnection MyConnection = new OleDbConnection();
//Response.Write(dt);

MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Databasen.mdb";
string strSQL = "Select * from Beskeder where Medlem= @id and Dato= @dato"

         
//Response.Write(strSQL);
OleDbCommand objCommand = new OleDbCommand(strSQL, MyConnection);
objCommand.Parameters.Add("@id", OleDbType.VarChar);
objCommand.Parameters.Add("@dato", OleDbType.DBDate);
objCommand.Parameters["@id@].Value = id;
objCommand.Parameters["@dato"].Value = dt;
           
OleDbDataReader objDataReader = null;

try
{
  MyConnection.Open();
  objDataReader = objCommand.ExecuteReader();
  while (objDataReader.Read() == true)
  {
      BeskedT.Text += Convert.ToString(objDataReader["Besked"]);
  }
  objDataReader.Close();
}
catch (Exception exept)
{
  Response.Write(exept);
}
MyConnection.Close();
Avatar billede jimmydk Nybegynder
03. september 2008 - 11:49 #11
Takker det hjalp

Har også fået fixet update

Jeg takker for hjælpen.
Så smid et svar og der kommer lidt points
Avatar billede aaberg Nybegynder
03. september 2008 - 12:12 #12
svar :-)
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