» Poradna » Programy

DataAdapter.Update()

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 2/2
 |   |   |  [213.29.98.---]

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


Genetika a příjmení: Unikátní možnost získat test Y-DNA zdarma a dozvědět se o svých předcích

Genetika a příjmení: Unikátní možnost získat test Y-DNA zdarma a dozvědět se o svých předcích

** Projekt Genetika a příjmení hledá shody mezi osobami se stejným příjmením ** Využívá k tomu testování DNA na chromozomu Y ** Výsledky testu můžete účastí v projektu získat zdarma

11.  1.  2018 | Marek Lutonský | 3


Aktuální číslo časopisu Computer

Zachraňte nefunkční Windows

Jak nakupovat a prodávat kryptoměny

Otestovali jsme konvertibilní notebooky

Velký test 14 herních myší