» 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

Zbavujeme se Googlu: vybíráme nejlepší alternativy, které nahradí jeho služby

Zbavujeme se Googlu: vybíráme nejlepší alternativy, které nahradí jeho služby

** Google nabízí spoustu služeb, ale většina z nich má i dobré alternativy ** Pokud z nějakého důvodu nechcete používat služby Googlu, nemusíte ** Připravili jsme přehled služeb, kterými lze ty od Googlu nahradit

Karel Javůrek, David Polesný | 89

Notebook do 10 000 korun: Co koupit a čemu se raději vyhnout

Notebook do 10 000 korun: Co koupit a čemu se raději vyhnout

** Do deseti tisíc korun lze dnes koupit slušné notebooky ** V nabídce ale převládají zastaralé a pomalé modely ** Poradíme, jak dobře vybrat i s omezeným rozpočtem

David Polesný | 55

Nejlepší notebooky do 20 000 Kč: Tipy, co se teď vyplatí koupit

Nejlepší notebooky do 20 000 Kč: Tipy, co se teď vyplatí koupit

** Za dvacet tisíc korun lze pořídit kvalitní pracovní notebook ** Stejně tak může jít o herní notebook s výkonnější grafikou ** Poradíme, jaké notebooky vybrat pro různé druhy použití

Stanislav Janů | 48



Aktuální číslo časopisu Computer

Nejlepší programy pro úpravu fotek zdarma

Externí disky pro zálohu dat

Velký test: herní notebooky

Srovnání 12 batohů