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.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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.
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.
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)
V properties to není. Založím to znovu v management studiu a bude. Děkuji za ochotu.
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.
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();
}
}
}
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");
Zobrazeno 9 zpráv z 9.