19. august 2005 - 16:11
Der er
22 kommentarer og 1 løsning
Select sætninger virker ikke ordentlig
Hej, Jeg har et problem med min select sætning. Jeg ved at lave en webkalender, hvor man skal kunne vælge at se kalendere for forskelige mennesker. Jeg har lavet flg. sætning: OleDbParameter param = new OleDbParameter(); param.ParameterName = "@brugerid"; param.Value = personId; string strSQL = "Select dato,tid,kampange,emne,Kalendertekst,sted,brugerid From event Where dato=#"+date+"# AND brugerid = '@brugerid'"; Det skal siges at personId er en string der kommer fra en dropdownbox. Er der nogen kan se hvad fejlen mvh Brian
Annonceindlæg fra Deloitte
19. august 2005 - 16:13
#1
Hvad er det den gør galt?
19. august 2005 - 16:17
#2
Har du stavet felterne rigtigt ifht. tabellen (f.eks. ser "kampange" forkert ud, det burde være "kampagne" - under den antagelse at du har lavet en tastefejl i dit select... :))?
19. august 2005 - 16:20
#3
hvorfor bruger du ikke parameter for date ? det er da en oplagt kandifate til dato format problemer
19. august 2005 - 16:22
#4
Nej den virker fint, når jeg fjerner AND brugerid = '@brugerid'"; Det er meningen at når jeg trykker på en dato så skal den vise dagens indhold for en person i et datagrid, og det gør den ikke. MEN jeg kan sagtens se alle aftaler for alle personerne hvis jeg fjerner: AND brugerid = '@brugerid'";
19. august 2005 - 16:28
#5
fordi, jeg først lige har fundet ud af det med parameter, men det regner jeg også med at lave om senere. Men umiddelbart er det ikke noget problem så det venter jeg med
19. august 2005 - 16:29
#6
får du added den parameter til den command du laver udfra SQL streng ?
19. august 2005 - 16:31
#7
huha... det tror jeg ikke, jeg har ikke lavet andet med parameter end det der står øverst
19. august 2005 - 16:33
#8
Når du bruger parametre er der ingen grund til at have '-tegn rundt om noget som skal være tekst. Det skal automatikken ordne for dig. Er brugerid i øvrigt overhoved defineret som en tekst-type i selve databasen? Endeligt så kan jeg ikke se at du i din kode angiver hvilken type din parameter er.
19. august 2005 - 16:33
#9
du skal: dinkommando.Parameters.Add(param);
19. august 2005 - 16:35
#10
øh... hvilke kommando? jeg er lidt sløv på det her område :-D
19. august 2005 - 16:36
#11
den kommando som du laver udfra din SQL streng og din connection
19. august 2005 - 16:43
#12
Det ændre ikke noget, jeg har skrevet følgende, ser det helt forkert ud. OleDbCommand cmd = new OleDbCommand(); OleDbParameter param = new OleDbParameter(); param.ParameterName = "@brugerid"; param.Value = personId; cmd.Parameters.Add(param); string strSQL = "Select dato,tid,kampange,emne,Kalendertekst,sted,brugerid From event Where dato=#"+date+"# AND brugerid = '@brugerid'";
19. august 2005 - 16:56
#13
du skal også have tilknyttet en connection til din command og hvor kalder du ExecuteNonQuery ?
19. august 2005 - 17:02
#14
Den kalder jeg ikke, det har der ikke være behov for tidligere. Her er hele min Connection. DateTime datoTmp = DateTime.Parse(Calendar1.SelectedDate.ToShortDateString()); string personId = dstaff.SelectedItem.Text.ToString(); string date = datoTmp.ToString("MM-dd-yyyy"); string strDSN=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source="; strDSN+=Server.MapPath("data\\kalender.mdb"); OleDbConnection myConn2 = new OleDbConnection(strDSN); OleDbCommand cmd = new OleDbCommand(); OleDbParameter param = new OleDbParameter(); param.ParameterName = "@brugerid"; param.Value = personId; cmd.Parameters.Add(param); string strSQL = "Select dato,tid,kampange,emne,Kalendertekst,sted,brugerid From event Where dato=#"+date+"# AND brugerid = '@brugerid'"; OleDbDataAdapter myCmd = new OleDbDataAdapter(strSQL, myConn); myConn2.Open(); DataSet dsDate = new DataSet(); myCmd.Fill(dsDate,"event"); Men jeg har slet ikke haft behov for det, og jeg kan ikke forstå hvorfor det skal volde så store problemer med en ekstra betingelse? mvh
19. august 2005 - 17:06
#15
nå - det er en data adapter og ikke en data reader jeg må tilstå at jeg ikke ved om man kan bruge parameters med sådan en
19. august 2005 - 17:09
#16
okay... men hvordan får jeg så en string ind i et sql statment ? Jeg har prøvet med '+brugerid+' , 'brugerid' og forskellige andre og enten virker det ikke eller også siger den at jeg mangler forskellige parameter. Hvordan mener du at man skal have den ind ? mvh Brian
19. august 2005 - 17:11
#17
string strSQL = "Select dato,tid,kampange,emne,Kalendertekst,sted,brugerid From event Where dato=#"+date+"# AND brugerid = " + personID; eller string strSQL = "Select dato,tid,kampange,emne,Kalendertekst,sted,brugerid From event Where dato=#"+date+"# AND brugerid = '" + personID + "'";
19. august 2005 - 17:12
#18
alt efter om brugerid feltet er tal eller tekst
19. august 2005 - 17:13
#19
tekst det er en string der hedder personID
19. august 2005 - 17:18
#20
Det virker SUPER - Mange tak for hjælpen !!
19. august 2005 - 17:22
#21
smider du lige et svar ?
19. august 2005 - 17:25
#22
mig ?
19. august 2005 - 17:28
#23
Ja dig :D
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.