Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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: Ako použiť jeden connection string vo viacerých formoch

Aktivity
Avatar
M6692
Člen
Avatar
M6692:5.5.2021 23:25

Ahojte
mám vytvorených viac Form-ov a v každom z nich používam rovnaký connection string

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Notebook\source\repos\Login\Login\Skuska.mdf;Integrated Security=True");

Zkusil jsem: Ak to má zmysel rád by som vytvoril len jeden, na ktorý by som odkazoval z jednotlivých Form-ov. Trošku som googlil a zistil som že je to možné napr. vytvorením triedy(class)

Chci docílit: Prosím Vás je potrebné alebo výhodné používať len jeden connection strin pre viac Form-ov, alebo môžem ponechať v každom Forme nadefinovaný connection string? Prípadne ak je vhodnejšie použiť len jeden, akým spôsobom to urobiť. Stačí ma len nasmerovať akou cestou sa vybrať ja sa to pokúsim dohľadať.
Ďakujem

 
Odpovědět
5.5.2021 23:25
Avatar
zelvicek
Člen
Avatar
zelvicek:6.5.2021 6:50

Forms - jaká technologie?
Winforms: stačí jeden. Ulož ho do statického feildu.
Webforms: využívej pool -> jeden connection pro request.

 
Nahoru Odpovědět
6.5.2021 6:50
Avatar
M6692
Člen
Avatar
Odpovídá na zelvicek
M6692:6.5.2021 9:20

Ahoj
používam Winform, takže skúsim sa pozrieť na tie static field.
Našiel som ešte takýto spôsob:
app.config

<connectionStrings>
    <add name="MyConnectionString" connectionString="Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=MTRInfoTables;Integrated Security=True" />
</connectionStrings>

code.cs

string myConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

len neviem či je použiteľný, prípadne aké má obmedzenia.
Ďakujem

 
Nahoru Odpovědět
6.5.2021 9:20
Avatar
Petr Jílek
Člen
Avatar
Petr Jílek:6.5.2021 15:25

Ahoj, u každýho projektu jsou i nastavení kde se dá definovat typ proměnný, zda je to aplikační nebo uživ. nastavení atd. Zde se dá buď connection string uložit tak jak ho máš v příspěvku nebo jako klasická proměnná typu string. Přistupuje se k tomu např. takto Properties.Set­tings.Default­.NazevNastave­ni. Za běhu app pak můžeš upravovat nastavení např. takto:

public static void UpdateSettings(string valueName, object value)
{
    Properties.Settings.Default[valueName] = value;
    Properties.Settings.Default.Save();
}

Spíš záleží jak přesně chceš ten connection string použít a zda je riskantní pokud by ho uživatel mohl z toho settings přečíst.

 
Nahoru Odpovědět
6.5.2021 15:25
Avatar
Ghst
Člen
Avatar
Odpovídá na M6692
Ghst:7.5.2021 22:04

Ahoj,

v případě, že použiješ app.Config jak píšeš, nebo Settings, budeš mít možnost změnit connectionString v XML souboru a jsi schopen změnit DB bez úpravy kódu. Zde pak použiješ manager, kterým disponuje .NET, příklad jsi sám postnul ty, respektive @Petr Jílek.

Pokud chceš použít uložení v kódu, použiješ nějakou statickou vlastnost, konstantu nebo použiješ singleton, ale otázkou je spíše, proč potřebuješ pracovat přímo s DB ve formulářích? Nebylo by lepší vytvořit třídu "Data", která bude disponovat metodami pro komunikaci s DB a tu si předáš jako referenci tam, kde budeš potřebovat?

 
Nahoru Odpovědět
7.5.2021 22:04
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 5 zpráv z 5.