Avatar billede iq-n Nybegynder
26. maj 2006 - 20:34 Der er 11 kommentarer og
1 løsning

Skrive til en Yes/no tabel i en Access db

Hej Alle

jeg sidder her og har et problem med at skrive til en Access database. I databasen er der er text felt og et Yes/no felt som i databasen vises som en checkbox. Mit problem er at jeg gerne ville skrive til denne database men den bliver ved med at sige der er en syntaksfejl i min INSERT INTO-sætning.

min SQL streng ser således ud:
"INSERT INTO Test (Navn, Yesno) Values ('Test1', true)"

jeg har prøvet at astatte true med 'True', Yes, 'Yes', Checked og er nu ved at være tør for idéer.

Er det nogle der har nogle???
Avatar billede nielle Nybegynder
26. maj 2006 - 20:38 #1
Enten bør du bruge parametre, eller også så skal du bruge 0 og 1 i din SQL-sætning.
Avatar billede iq-n Nybegynder
26. maj 2006 - 20:42 #2
1 og 0 virkede heller ikke
hvad mener du med "parametre"?

Jeg er ret grøn i asp.net (C#)
Avatar billede nielle Nybegynder
26. maj 2006 - 20:44 #3
Avatar billede iq-n Nybegynder
26. maj 2006 - 20:56 #4
Ok, jeg har kigget på artiklen, en er stadig ikke siker på hvordan man gør.

Jeg kan ikke helt se hvad jeg skal gøre, da der ikke står noget med, hvad man gør med et Yes/No felt
Avatar billede nielle Nybegynder
26. maj 2006 - 21:05 #5
Bruger du ODBC eller OleDb til at arbejde med din Access-database?
Avatar billede iq-n Nybegynder
26. maj 2006 - 21:09 #6
For at svare på dit spørgsmål bruger jeg OleDb

Men jeg fandt ud at det var fordi den ikke kunne lide jeg kaldte mit Yes/No felt Yesno, da jeg omdøbte den til noget andet virkede den med true.

Beklager jeg spildte din tid, så hvis du er med på den deler vi bare pointene
Avatar billede nielle Nybegynder
26. maj 2006 - 21:14 #7
Ja det ville jo forklare sagen. :^)

Men lige for at runde parametre af:

            string sql = "INSERT INTO Test (Navn, Yesno) VALUES (@Navn, @Yesno)";
            OleDbCommand cmd = new OleDbCommand(sql, conn);

            cmd.Parameters.Add("@Navn", OleDbType.VarChar, 50);
            cmd.Parameters.Add("@Yesno", OleDbType.Boolean);

            cmd.Parameters["@Navn"].Value = "Test1";
            cmd.Parameters["@Yesno"].Value = true;

            cmd.ExecuteNonQuery();

Der er mange gode grunde til at vælge parameter, f.eks. forhinder man derigennem SQL-injection.

Jeg lægger gerne et svar, men du bestemmer helt selv pointfordelingen. :^)
Avatar billede iq-n Nybegynder
26. maj 2006 - 21:18 #8
Ok så ser jeg den lidt bedere. Takker mange gange.

Men jeg sidder og laved en hjemmeside for et undertøjsfirma. Og undertøj har åbenbart ca. 126 forskellige størrelser, så jeg tror ikke jeg orker at oprette parameter for dem alle.
Avatar billede nielle Nybegynder
26. maj 2006 - 21:20 #9
Det er ellers en rigtig god ide, for så slipper du for at kode en masse ekstra for at klare sikkerheden. :^)
Avatar billede iq-n Nybegynder
26. maj 2006 - 21:26 #10
Ja det ved jeg godt, men så vidt jeg kan læse mig til er det kun nødvendigt når en bruger selv skal intaste noget, og det er der ikke brug for her da brugeren bare skal checke nogle checkboxe af. (Korekt forstået?)
Avatar billede nielle Nybegynder
26. maj 2006 - 21:31 #11
Kunderne skal vel også indtaste deres navn og leverings adresse på et eller andet tidspunkt?

Bortset fra det så er det ikke helt korrekt, man bør *altid* sikre indput fra brugerne imod at det er noget som helst andet end det man forventer. Godt nok kummer dit sædvanlige indput fra nogle checkbokse, men det betyder ikke at joe-the-hacker ikke kunne finde på at lave sin egen form og submitte via den som en del af et angreb mod hjemmesiden.
Avatar billede iq-n Nybegynder
26. maj 2006 - 21:52 #12
Faktisk ikke, den skal bruges til ændring af størrelser, så de vælger et produkt fra en dropdown og afkrydser de størrelser og trykker ret, så de skal ikke selv intaste noget. Men det kunne nok bruge på nogle af de andre sider. Men det når jeg ikke at få rettet da der snart skal afleveres.

Men endnu har vi ikke lært så meget om sikkerhed, dette er trods alt kun min anden aspx side. Men jeg ville da prøve det i et af mine næste projekter. Takker mange gange
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

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