» Poradna » Programy

Chyba s MySQLCommand v C#

 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

Ahoj všichni,udělal jsem nový web a teď vytvářím aplikaci pro jeho administraci v C#. Používám třídu MySqlCommand, ale ta mi neustále vrací tuto chybu: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'width: 412px; margin-left: auto; margin-right: auto; margin-top: 15px;"><img src' at line 1". Nevíte někdo co s tím? Padá to na tomto řádku: new MySqlCommand("UPDATE csharp SET nazev = \"" + this.title.Text + "\", obsah = \"" + this.content.Text + "\" WHERE id = " + this.id, this.connection).ExecuteNonQuery();. Díky moc za pomoc ;)

Odpovědi na otázku

 |   |  Microsoft Windows 7 Chrome 26.0.1410.64

Slyšel jsi někdy o SQL Injection?Snažíš se tam protlačit text, který obsahuje uvozovky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

To mě napadlo, ale jak je mám odstranit? Existuje snad nějaký ekvivalent mysql_real_escape_string pro C#?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 26.0.1410.64

Použij parametrizované dotazy. Tím vyřešíš i SQL Injection.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Pokud tam fakt chceš data s uvozovkama, tak by to tam možná šlo protlačit přes pametrické dotazy. Nějaký příklad najdeš třeba tady:http://stackoverflow.com/questions/652978/paramete... Ale s MySQL jsem v C# nikdy nedělal tak ti s tím asi víc neporadím.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

Tohodle se trochu bojím.. původně jsem to tak řešil, ale dopadlo to smazanou databází :D. Samozřejmě mám zálohy, takže díky všem za pomoc.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 26.0.1410.64

To smazanou databázi fakt skončit nemůže.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

A co kódování? Zkoušel jsem odeslat "ěščřžýáíé", ale do databáze dorazilo pouze "ešcržýáíé". Databáze je dělaná v UTF-8.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 26.0.1410.64

A text, který tam odesíláš, je taky v UTF-8?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

To právě nevím. Jak to mám ovlivnit?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 26.0.1410.64

Nejspíš tam ukládáš části nějaké webové stránky. V jakém je kódování?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

V tom dotazu odesílám text z RitchTextboxu do databáze, která je dělaná v UTF-8.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 20.0

Zkontroluj si syntax ta chyba bije primo do oci.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 26.0.1410.64

V tom případě to nejspíš bude UTF-16.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

A jak to mám tedy překódovat od UTF-8?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Opera 9.80

Pár minutek s googlem, a mohlo by fungovat přidání kodování do connection stringu:Charset=utf8Ale někde jsem se dočetl že to je Case Sensitive, a funguje jen tento zápis co jsem napsal. Bohužel jinde jsem se dočetl, že to zase funguje jen takto: CharSet=UTF8;Takže to asi budeš muset trochu vyzkoušet, která velikost písmen vlastně funguje. Třeba to bude: charset=Utf8;

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172

Všem děkuji za ochotu. Program už funguje podle očekávání a já si jdu dát něco k jídlu. Jen tak pro zajímavost kódování se určuje: CharSet=utf8;.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Syntax, Right, Nový web




Určitě si přečtěte

Sex a rozmnožování při mezihvězdné cestě: Kolik lidí je potřeba pro let k Proximě Centauri?

Sex a rozmnožování při mezihvězdné cestě: Kolik lidí je potřeba pro let k Proximě Centauri?

** Vědci spočítali, jak velká by musela být posádka pro vícegenerační let k nejbližší hvězdné soustavě ** Proxima Centauri se nachází 4,3 světelných let od nás ** Za současných technologií bychom k ní letěli 6300 let

Petr Kubala | 52

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

** Systém Windows 10 umí spoustu užitečných drobností ** O mnoha praktických funkcích pravděpodobně ani nevíte ** Poznejte užitečné tipy, které se vám mohou hodit každý den

Vladislav Kluska | 36

Alan Turing: Genius, který matematicky stvořil počítač

Alan Turing: Genius, který matematicky stvořil počítač

Řešením matematického problému se dostal k modelu teoretického stroje, který nese jeho jméno a je základem logiky univerzálních počítačů.

Pavel Tronner | 56

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

Nechcete platit za Total Commander? Těmito bezplatnými programy ho můžete nahradit

** Total Commander je na Windows takřka legendou ** Licence však stojí více než tisíc korun ** Našli jsme pro vás deset alternativ dostupných zdarma

Karel Kilián | 140

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

** Teplotní extrémy dokážou překvapit. Seznamte se s rekordy v Česku i ve světě ** Rekordní hodnoty jsou mnohdy až k neuvěření ** Zjistěte, kdy ke bylo největší horko, zima, déšť či vítr

Karel Kilián | 7


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji