NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Visual studio 2015 a SQL expres 2016 relationships tabulky - vytvoření

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Poggy
Člen
Avatar
Poggy:10.4.2017 19:12

Ahoj, pokouším se ve visual studiu vytvořit dvě tabulky a vzájemně je na sebe navázat přes cizí Id klíč. Založil jsem dvě tabulky (zákaznící a zakázky) a do zakázek přidal sloupec CiziKlicZakaznik. Bohužel se mi nedaří přidat vztah na druhou tabulku zakazníci přes relationships. V SQL management studiu to funguje pravým na označený sloupec a relationship, jen ve visuálku tam tuto možnost nemám. Jak je přes VS naváži na sebe? Více obrázek.
Děkuji za radu.

 
Odpovědět
10.4.2017 19:12
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Poggy
Jan Vargovský:10.4.2017 19:59

VS není nástroj na vytváření RDBMS, k tomu slouží právě SQL Management Studio. Ve VS si to můžeš napsat přes SQL.

 
Nahoru Odpovědět
10.4.2017 19:59
Avatar
Poggy
Člen
Avatar
Odpovídá na Jan Vargovský
Poggy:10.4.2017 20:18

S SQL teprve začínám, ještě jsem proběhl zdejší tutoriály, ale nikde jsem to tam nenašel. Snad jsem to nepřehlédl. Můžeš mi popsat jak je přes Query naváži na sebe? Mám totiž literaturu co tvrdí, že to ve VS funguje a chtěl bych to alespoň umět. I když bych do budoucna používal SQL Management Studio.
Děkuji.

 
Nahoru Odpovědět
10.4.2017 20:18
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Poggy
Jan Vargovský:10.4.2017 23:51

No tohle je celkem primitivní věc, kterou by mohlo VS umět. Není to náhodou v properties? Nemám VS, tak to nemůžu prozkoumat...

V SQL by to bylo nějak tahle:

alter table zakazky add foreign key (CiziKlicZakaznik) references Zakaznici(Id)
 
Nahoru Odpovědět
10.4.2017 23:51
Avatar
Poggy
Člen
Avatar
Odpovídá na Jan Vargovský
Poggy:11.4.2017 17:41

V properties to není. Založím to znovu v management studiu a bude. Děkuji za ochotu. :-)

 
Nahoru Odpovědět
11.4.2017 17:41
Avatar
Michal Žůrek - misaz:11.4.2017 17:53

Ahoj, Ve Visual Studiu lze vytvořit cizí klíče i v návrháři. Klikneš v pravém panelu pravým tlačítkem na Foreign Keys > **Add New Foreign Key > pojmenuješ ho. Doplní ti to syntaxi kde už pak jen dopíšeš co, kam a jak chceš spojit.

Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
11.4.2017 17:53
Avatar
Poggy
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
Poggy:11.4.2017 18:45

Moc děkuji, to bude asi ono. Vidím to poprvé a tak raději dám screen. Mám to správně? Mohl bys kdyžtak ještě poradit jak připojím do winForm aplikace připojovací řetezec na tabulku? Připojovací řetězec jsem zkopíroval z databaze Zakaznici.mdf, properties tabulky Connection - Connection string. Zdroják:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

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

        private void btnVloz_Click(object sender, EventArgs e)
        {
            SqlConnection pripojeni = new SqlConnection
           (Data Source = (LocalDB)\MSSQLLocalDB; // odsud je to asi určitě blbě
            AttachDbFilename = "C:\Users\Uživatel\Documents\Visual Studio 2015\Projects\SQL databaze tabulky\Vynechano\Zakaznici.mdf";
            Integrated Security = True;
            Connect Timeout = 30);

            // objekt příkazu
            string textPrikazu =
                "INSERT INTO Zakaznici " +
                "(Prijmeni, Jmeno, Adresa, Mail, Telefon) " +
                "VALUES ('Dostál', 'Pavel', 'Hořická 18, Hradec Králové', NULL, '777-111-773')";
            // vytvoření příkazu
            SqlCommand prikaz = new SqlCommand(textPrikazu, pripojeni);
            // otevřeme připojení, provedeme příkaz a zavřeme připojení
            pripojeni.Open();
            prikaz.ExecuteNonQuery();
            pripojeni.Close();
        }
    }
}
 
Nahoru Odpovědět
11.4.2017 18:45
Avatar
Odpovídá na Poggy
Michal Žůrek - misaz:11.4.2017 21:43

Cizí klíč máš nastavený dobře. Osobně bych doporučil lepší název pro field (např. jenom Zakaznik), protože u názvu filetu tě nezajímá jaký je na to nastavený klíč. Koneckonců i primární klíč může být zároveň cizí klíč, ale to je jen doporučení.

Connection String je String, tedy ho musíš obalit uvozovkami a odšlapovat.

SqlConnection pripojeni = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=\"C:\\Users\\Uživatel\\Documents\\Visual Studio 2015\\Projects\\SQL databaze\\tabulky\\Vynechano\\Zakaznici.mdf\";Integrated Security=True;Connect Timeout=30");
 
Nahoru Odpovědět
11.4.2017 21:43
Avatar
Poggy
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
Poggy:12.4.2017 15:56

Vidíš, to mi nedošlo. Děkuji moc. :-)

 
Nahoru Odpovědět
12.4.2017 15:56
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 9.