NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 6 - Databáze v C# .NET - INSERT, UPDATE, DELETE a COUNT

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jiří Láska:25.1.2021 20:33

Nefunguje mi INSERT. Dokonce i když jsem si stáhl projekt pod tímto článkem, tak ani v něm to nefunguje. Zadám jako uživatel přes konzoli nové slovíčko, ale při následném zobrazení obsahu tabulky ve Visual studiu je vidět, že se nic nepřidalo. Mluvím o vzorovém příkladu, který jsem stáhl pod tímto článkem. Refresh nepomáhá. Zavřít a znova otevřít nepomáhá.
V čem může být chyba? Co můžu dělat špatně?
Předpokládám, že databáze se přenáší s projektem, a že by k němu měla zůstat připojená.

Tady je kód, je to z toho vzorového projektu pod článkem:

static void Main(string[] args)
        {
            string connectionString = Properties.Settings.Default.SlovickaDBConnectionString;

            using (SqlConnection spojeni = new SqlConnection(connectionString))
            {
                spojeni.Open();

                 //INSERT

                Console.WriteLine("Zadej nové slovíčko anglicky");
                string anglicky = Console.ReadLine();
                Console.WriteLine("Zadej nové slovíčko česky");
                string cesky = Console.ReadLine();
                string dotaz = "INSERT INTO Word (English, Czech) VALUES (@anglicky, @cesky)";
                using (SqlCommand sqlDotaz = new SqlCommand(dotaz, spojeni))
                {
                    sqlDotaz.Parameters.AddWithValue("@anglicky", anglicky);
                    sqlDotaz.Parameters.AddWithValue("@cesky", cesky);
                    int radku = sqlDotaz.ExecuteNonQuery();
                    Console.WriteLine(radku);
                }

            }
            Console.ReadKey();
        }
 
Odpovědět
25.1.2021 20:33
Avatar
Lukáš Lakota:3.5.2021 15:52

Našel jsem malou chybku v ukázce příkazu DELETE:

string dotaz = "DELETE FROM Word WHERE Anglicky=@anglicky";

"Anglicky" se sloupec nejmenuje, mělo by tam být "English", začátečníka, jako mě, to zmátlo, proč ten kód nefunguje :-)

 
Odpovědět
3.5.2021 15:52
Avatar
Odpovídá na Jiří Láska
Anastasia Bozhenko:18.11.2022 16:00

chyba v kodu (stejně jako u DELETE):

sqlDotaz.Parameters.AddWithValue("@anglicky", anglicky);
sqlDotaz.Parameters.AddWithValue("@cesky", cesky);
spojeni.Open();         //tento řádek chybí, po přidaní vše funguje
int radku = sqlDotaz.ExecuteNonQuery();
Console.WriteLine(radku);

Prosím o úpravu tutoriálu, je to strašně demotivující, když nefunguje kód podle návodu....

 
Odpovědět
18.11.2022 16:00
Avatar
Pavel
Člen
Avatar
Pavel:11.12.2022 19:37

Už tři lidi tu v průběhu 5 let napsali, že u DELETE je špatně napsaný název sloupce (Anglicky místo English) a pořád to v článku není opraveno...

 
Odpovědět
11.12.2022 19:37
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Pavel
David Novák:13.12.2022 6:06

Děkujeme, opraveno.

 
Odpovědět
13.12.2022 6:06
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Anastasia Bozhenko
David Novák:13.12.2022 6:26

Děkujeme, doplněno do všech třech příkladů

 
Odpovědět
13.12.2022 6:26
Avatar
Tereza Kalivodová:14.3.2023 23:22

Primary key (ID) u tabulky Word se mi začalo chovat divně, mám ID 1, 2, 3, 4, 1004, 2004, 2005, 2006, 2007, 2008... nevíte čím to může být a jako to opravit? Můžu použít stažený kód, ale u vlastních projektů tuto možnost mít nebudu že jo :D Začalo to blbnout od uživatelem insertovaných slov

 
Odpovědět
14.3.2023 23:22
Avatar
Odpovídá na Tereza Kalivodová
Rostislav Neidhardt:25.4.2023 18:07

Také mi to dělá (po každém restartu +1000), jde asi o tohle.. IDENTITY_CACHE = { ON | OFF }
ale zatím jsem nepřišel na to, jak to procpat do kodu

 
Odpovědět
25.4.2023 18:07
Avatar
Odpovídá na Tereza Kalivodová
Rostislav Neidhardt:26.4.2023 16:13

tak jsem na začátek kodu, hned za připojení, vložil toto a funguje...ale jestli je toto řešení best practise

string prikaz_cache_string = "ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF";
SqlCommand prikaz_cache = new SqlCommand(prikaz_cache_string, pripojeni);
prikaz_cache.ExecuteNonQuery();
 
Odpovědět
26.4.2023 16:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 59.