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?
Annonceindlæg fra Immeo
Mener jeg DinText.Replace(''','''');
uhmm forklare lige bedre? og man kan slet ik få lov at bruge ' ?
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
og hvordan gør jeg så det? så skal der jo skrives en del kode der gør det ved alle felter?
DU kun kan gøre det hvor du alligevel indsætter teksten i sql: TextBox.Text.Replace(''','''');
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
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
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 + "')"; ??
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
eller brug parameters ...
Thesurfer smid et svar :)
dr_chaos skal da også lige have nogle points.. :-) /theSurfer
starf> Du markerer bare begge navne (brug CTRL eller SHIFT tasten) i boksen til venstre, og klik derefter på Accepter-knappen.. /theSurfer
Det var så lidt, og takker for points.. hav en god dag.. :-) /theSurfer
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.