NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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
Maros2470
Člen
Avatar
Odpovídá na Michal Štěpánek
Maros2470:27.4.2014 10:44

Už to šlape.

 
Odpovědět
27.4.2014 10:44
Avatar
Odpovídá na Maros2470
Michal Štěpánek:27.4.2014 11:23

...a pak, že je ryba němá... :-)

Odpovědět
27.4.2014 11:23
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jan Sála
Tvůrce
Avatar
Jan Sála:15.8.2014 11:27

Zdravím moc pěkný článek.
Mám dotaz. Já když vložím data do tabulky tak mi to tu tabulku sice updatuje( v tom programu to poznám) ale když spustím znova aplikace tak je ta tabulka stejná jako předtím a všechna předtím vložená data jsou pryč.
Je nějaký příkaz k synchronizaci nebo něco dělám špatně - zde je kód:

private void import_Click(object sender, RoutedEventArgs e)
{
    System.Windows.Forms.OpenFileDialog open = new System.Windows.Forms.OpenFileDialog();
    if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Data\Slovicka.mdf;Integrated Security=True";
        string[] data = System.IO.File.ReadAllLines(open.FileName);
        for (int i = 0; i < data.Length; i++)
        {
            string[] zaznam = data[i].Split(';');
            using (SqlConnection pripojeni = new SqlConnection(connectionString))
            {
                pripojeni.Open();
                SqlCommand prikaz = new SqlCommand("INSERT INTO Preklad (Spanelsky, Rod, Cesky1, Cesky2, Cesky3, Cesky4, Ucebnice, Lekce, Kategorie, Nepravidelné) VALUES (@sp, @rod, @cz1, @cz2, @cz3, @cz4, @ucebnice, @lekce, @kat, @pravid)", pripojeni);
                prikaz.Parameters.AddWithValue("@sp", zaznam[0]);
                prikaz.Parameters.AddWithValue("@rod", zaznam[1]);
                prikaz.Parameters.AddWithValue("@cz1", zaznam[2]);
                prikaz.Parameters.AddWithValue("@cz2", zaznam[3]);
                prikaz.Parameters.AddWithValue("@cz3", zaznam[4]);
                prikaz.Parameters.AddWithValue("@cz4", zaznam[5]);
                prikaz.Parameters.AddWithValue("@ucebnice", zaznam[6]);
                prikaz.Parameters.AddWithValue("@lekce", Convert.ToInt16(zaznam[7]));
                prikaz.Parameters.AddWithValue("@kat", zaznam[8]);
                prikaz.Parameters.AddWithValue("@pravid", zaznam[9]);
                int a = prikaz.ExecuteNonQuery();
            }
        }
    }
}

P.S. vím že by se ten kód dal udělat cyklicky ale je to jen dočasné řešení potřebuji ho jen na převádění z csv do tabulky

Odpovědět
15.8.2014 11:27
Když nevím co s tím, tak je chyba v compileru.
Avatar
Odpovídá na Jan Sála
Michal Štěpánek:15.8.2014 11:34

Nemáš někde v programu nastaveno, že se má po startu ta databáze smazat a vytvořit nová?

Odpovědět
15.8.2014 11:34
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jan Sála
Tvůrce
Avatar
Jan Sála:15.8.2014 11:40

jako žádnou metodu on load tam nemám takže c# kódem nic rozhodně nemažu ani neobnovuji - nenastavuje se něco takového v properties ?

Odpovědět
15.8.2014 11:40
Když nevím co s tím, tak je chyba v compileru.
Avatar
honza86
Člen
Avatar
honza86:29.10.2014 15:11

Zdravim,
zkoušim přidat slovo do DB ale pořád mi to padá u příkazu ExecuteNonQuery(); databázi jsem vytvořil lokální .mdf tak jestli v tom neni problém.

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnUloz_Click(object sender, EventArgs e)
        {
            string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\jan.******\documents\visual studio 2012\Projects\PokusDB2\PokusDB2\Database1.mdf;Integrated Security=True";
            using (SqlConnection pripojeni = new SqlConnection(connectionString))
            {
                pripojeni.Open();
                //lblZprava.Text = "OK";
                string slovo = textBox1.Text;
                string dotaz = "INSERT INTO Table(Slovo) VALUES (@slovo)";
                using (SqlCommand sqlDotaz = new SqlCommand(dotaz, pripojeni))
                {
                    sqlDotaz.Parameters.AddWithValue("@slovo", slovo);
                    int radku = sqlDotaz.ExecuteNonQuery();
                   lblZprava.Text = radku.ToString();
                }

            }//Data Source=(LocalDB)\v11.0;AttachDbFilename="C:\Users\jan.*****\Documents\Visual Studio 2012\Projects\PokusDB2\PokusDB2\Database1.mdf";Integrated Security=True;
        }
    }
}
Editováno 29.10.2014 15:14
 
Odpovědět
29.10.2014 15:11
Avatar
Odpovídá na honza86
Michal Štěpánek:29.10.2014 18:40

A při použití stejného connectionstringu na select ti to funguje?

Editováno 29.10.2014 18:40
Odpovědět
29.10.2014 18:40
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
honza86
Člen
Avatar
honza86:29.10.2014 20:11

U selectu je to stejné spadne to ne ExecuteScalar(); myslim že problém bude v connectString. Tak co s tím nejde ten connectString nějak upravit. Databázi jsem dělal ve Visual studiu k projektu jsem připojil součást a dal Service based database.

 
Odpovědět
29.10.2014 20:11
Avatar
Odpovídá na honza86
Michal Štěpánek:29.10.2014 21:58

Connectionstring je zapsán v App.Config. Tam se dá změnit. Najdi si, kde je uložen ten tvůj mdf soubor a pak si uprav cestu...

Odpovědět
29.10.2014 21:58
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
honza86
Člen
Avatar
Odpovídá na Michal Štěpánek
honza86:30.10.2014 5:53

Cesta je dobrá spíš jde o tom v jaké formě je ten ConnectString (CS). u normální DB CS vypadá takto

Data Source=localhost\MSSQLSERVER2008;Initial Catalog=SlovnicekDB;Integrated Security=True

a pak se před to dá @" a nakonec je "
ale u té mé je CS tento

Data Source=(LocalDB)\v11.0;AttachDbFilename="C:\Users\Honza\documents\visual studio 2013\Projects\pokusConsole\pokusConsole\Database2.mdf";Integrated Security=True

už je v uvozovkách cesta, kde je soubor takže když před to dám @" a na konec " tak už cesta nebude v uvozovkách ale první a třetí třetina řetězce a ten střed zůstane bez uvozovek.
Tak jestli ten CS nemusí být nastaven jinak když to neni klasická DB ale je to soubor.mdf

 
Odpovědět
30.10.2014 5:53
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 10 zpráv z 59.