Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 6. diel - Databázy v C# .NET - INSERT, UPDATE, DELETE a COUNT

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
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();
        }
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 :-)

Avatar
Odpovedá 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....

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...

Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Pavel
David Novák:13.12.2022 6:06

Děkujeme, opraveno.

Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Anastasia Bozhenko
David Novák:13.12.2022 6:26

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

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

Avatar
Odpovedá 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

Avatar
Odpovedá 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();
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 9 správy z 59.