» Poradna » Programy

Chyba s MySQLCommand v C#

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 16/16
 |   |  Microsoft Windows 7 Chrome 25.0.1364.172  |  [176.12.115.---]

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  |  [176.12.115.---]

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  |  [176.12.115.---]

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  |  [176.12.115.---]

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  |  [176.12.115.---]

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  |  [176.12.115.---]

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  |  [94.113.216.---]

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  |  [176.12.115.---]

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  |  [176.12.115.---]

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, Nový web



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