» Poradna » Programy

DataAdapter.Update()

 |   | 

Dobrý den, mám takovýhle kód:
======================================================= ========================
MySqlCommand DeleteComm = new MySqlCommand("DELETE FROM `banka` WHERE `nazev_b`=@old_nazev_b");
DeleteComm.Parameters.Add("@old_nazev_b", MySqlDbType.VarChar, 30, "nazev_b");
DeleteComm.Parameters["@old_nazev_b"].SourceVersion = DataRowVersion.Original;
DeleteComm.Connection = mySqlConnection_hlavni;
MySqlDataAdapter_banky.DeleteCommand = DeleteComm;
================================================ ===============================

a updatovat se to pokouším takhle:
==================================================== ===========================
dgv.BindingContext[DataSet_hlavni, "banka"].EndCurrentEdit();
try
{
MySqlDataAdapter_banky.Update(DataSet_hlavni, "banka");
}
catch { }
========================================================== =====================

No a problém je v tom, že se žádná změna neprovede - podobně mám napsané i Inserty a Updaty, nefunguje nic. Přitom data v DataSetu se mi mění, to jsem si ověřil. Když použiji pro tvorbu updatů třídu MySqlCommandBuilder, tak to funguje - čili bych viděl problém v SQL příkazu a předávání parametrů. Když napíšu do DeleteCommandu DELETE * FROM banka - čili nikde se nevyskytují parametry, tak to funguje - vymaže se celý obsah tabulky.

Dík za radu!

Odpovědi na otázku

 |   | 

mmmm. Abych se přiznal tak mi to moc neříká, ale chyba je skutečně v provedení a nikoliv v příkazech.
Neskutečné problémy může dělat kombinace uvozovek či apostrofů v řetězci, která rázem může změnit úplně použitý příkaz.
Takže pokud obsahuje nějaký char tyto znaky může to být tím.

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

Parametre v príkazoch pre MySQL sa označujú otáznikom, nie zavináčom ako pre MS SQL. Takže príkaz by mal vyzerať nejako takto: "DELETE FROM `banka` WHERE `nazev_b`=?old_nazev_b" a parameter má potom meno "?old_nazev_b".
Ak to funguje s MySqlCommandBuilderom, tak potom nie je žiaden problém pozrieť na vygenerované príkazy cez metódy GetDeleteCommand, GetInsertCommand a GetUpdateCommand.

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

Související témata: Banka, Celý obsah, Catch




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

Odposlouchávali jsme děravou domácnost: Katka z Brightonu právě sedí doma, zatímco její manžel hraje asi golf

Odposlouchávali jsme děravou domácnost: Katka z Brightonu právě sedí doma, zatímco její manžel hraje asi golf

** Na internetu jsou tisíce nezabezpečených chytrých domácností ** Podívali jsme se na jednu z britského Brightonu ** Útočník sestaví kompletní socioekonomický profil rodiny

Jakub Čížek | 31

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

** Apple v nových iPhonech používá nový vlastní čip A12 Bionic ** Jde o první 7nm čip na světě ** Kromě vyššího klasického výkonu dostala neuronová část masivní navýšení rychlosti zpracování umělé inteligence

Karel Javůrek | 38

Lenovo přivezlo na IFA 2018 skutečné inovace. Tyto tři notebooky stojí za to

Lenovo přivezlo na IFA 2018 skutečné inovace. Tyto tři notebooky stojí za to

** Yoga C930 nabídne revoluční reproduktor v kloubu displeje ** Yoga Book C930 představuje zdařilý reparát podivného Yoga Booku ** ThinkPad X1 Extreme se může pochlubit extrémní výbavou v tenkém těle

Tomáš Holčík | 16

Užijte si poslední změny času: Už od března 2019 můžeme mít trvale letní čas

Užijte si poslední změny času: Už od března 2019 můžeme mít trvale letní čas

** Evropská komise přijala legislativní návrh na zrušení střídaní času ** Možná tak v březnu 2019 přesuneme ručičky hodinek naposledy ** Od toho okamžiku bude permanentně platit letní čas

Karel Kilián | 95


Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání