Avatar billede starf Nybegynder
02. maj 2006 - 13:38 Der er 18 kommentarer og
2 løsninger

kan ik indsætte ' i et felt

Hej

Jeg har et C# program der har nogle forms. Problemet er hvis jeg skriver ' ind i en felt så får jeg en fejl når jeg forsøger at skrive det til min db.

får følgende fejl:

#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Ordre','Yes','05/02/2006','','')' at line 1

Hvorfor får jeg denne fejl, og er der en let måde omkring det?
Avatar billede dr_chaos Nybegynder
02. maj 2006 - 13:41 #1
Mener jeg
DinText.Replace(''','''');
Avatar billede starf Nybegynder
02. maj 2006 - 13:44 #2
uhmm forklare lige bedre?

og man kan slet ik få lov at bruge ' ?
Avatar billede thesurfer Nybegynder
02. maj 2006 - 13:45 #3
Det er fordi ' afslutter værdien, som du har i feltet.

Man erstatter derfor et enkelt ' med 2x ', som opfattes som et enkelt ' af sql'en.

/theSurfer
Avatar billede starf Nybegynder
02. maj 2006 - 13:48 #4
og hvordan gør jeg så det? så skal der jo skrives en del kode der gør det ved alle felter?
Avatar billede dr_chaos Nybegynder
02. maj 2006 - 13:54 #5
DU kun kan gøre det hvor du alligevel indsætter teksten i sql:

TextBox.Text.Replace(''','''');
Avatar billede thesurfer Nybegynder
02. maj 2006 - 13:54 #6
Lad os sige at variabelnavn (eller tbxNavn.text) indeholder: ole's automobilhus

sql = "insert into TabelNavn (navn, adresse, tlf) values('" + rep(variabel_navn) + "','" + rep(variabel_adresse) + "','" + rep(variabel_tlf) + "')"

/theSurfer
Avatar billede thesurfer Nybegynder
02. maj 2006 - 13:55 #7
Lad os sige at variabelnavn (eller tbxNavn.text) indeholder: ole's automobilhus

sql = "insert into TabelNavn (navn, adresse, tlf) values('" + rep(variabel_navn) + "','" + rep(variabel_adresse) + "','" + rep(variabel_tlf) + "')"

private string rep(string txt)
{
return txt.replace(''','''');
}

/theSurfer
Avatar billede starf Nybegynder
02. maj 2006 - 13:58 #8
hvordan skal det så se ud hvis man skal ku bruge ' ved følgende felter:

textBox_miscnotes
textBox_spec_req
textBox_marking_notes
textBox_product
textBox_product_desc

her er min sql string:

string strSQL = "INSERT INTO ind_ordre(s_per,client,del_adr,inv_adr,del_time,status,sales_price,product,desc_product,no_product,colour,marking_note,e_feat,e_class,s_req,buy_adr,misc_note,kontakt_person,type,aktiv,date_created,payment_terms,designdate) VALUES('" + comboBox_salespersons.Text + "','" + textBox_client.Text + "','" + textBox_del_adr.Text + "','" + textBox_inv_adr.Text + "','" + deldate.Text + "','" + "Open" + "','" + textBox_sales_price.Text + "','" + textBox_product.Text + "','" + textBox_product_desc.Text + "','" + textBox_product_no.Text + "','" + textBox_colour.Text + "','" + textBox_marking_notes.Text + "','" + textBox_ext_feat.Text + "','" + textBox_ext_class.Text + "','" + textBox_spec_req.Text + "','" + textBox_customor_adr.Text + "','" + textBox_miscnotes.Text + "','" + textBox_contactperson.Text + "','" + comboBox_type.Text + "','" + "Yes" + "','" + date_created.Text + "','" + textBox_payment.Text + "','" + date_designdate.Text + "')";

??
Avatar billede thesurfer Nybegynder
02. maj 2006 - 13:59 #9
1) Tilføj denne metode:

private string rep(string txt)
{
    return txt.Replace("'", "''");
}

2) Lav backup af din kode

3) Erstat alle dine textBoxX.Text med rep(textBoxX.Text).. "X" navnet på dine textbokse..

/theSurfer
Avatar billede arne_v Ekspert
02. maj 2006 - 14:02 #10
eller brug parameters ...
Avatar billede dr_chaos Nybegynder
02. maj 2006 - 14:02 #11
ja :)
Avatar billede thesurfer Nybegynder
02. maj 2006 - 14:04 #12
parameters?

/theSurfer
Avatar billede arne_v Ekspert
02. maj 2006 - 14:06 #13
Avatar billede starf Nybegynder
02. maj 2006 - 14:12 #14
Thesurfer smid et svar :)
Avatar billede thesurfer Nybegynder
02. maj 2006 - 14:13 #15
Ok :-)

/theSurfer
Avatar billede thesurfer Nybegynder
02. maj 2006 - 14:14 #16
dr_chaos skal da også lige have nogle points.. :-)

/theSurfer
Avatar billede dr_chaos Nybegynder
02. maj 2006 - 14:14 #17
smider også et svar :)
Avatar billede thesurfer Nybegynder
02. maj 2006 - 14:16 #18
starf> Du markerer bare begge navne (brug CTRL eller SHIFT tasten) i boksen til venstre, og klik derefter på Accepter-knappen..

/theSurfer
Avatar billede starf Nybegynder
02. maj 2006 - 14:19 #19
tak for hjælpen folkens!
Avatar billede thesurfer Nybegynder
02. maj 2006 - 14:24 #20
Det var så lidt, og takker for points.. hav en god dag.. :-)

/theSurfer
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