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í.
Avatar
luckas
Člen
Avatar
luckas:17.2.2020 18:24

Ahoj,

prosím, o radu nemám zatím zkušenost s propojením databáze v C#. Snažím se propojit moji aplikaci (typu jako je fakturační systém) s databází, ale tak aby moje aplikace byla použitelná na více strojích (např. přenositelná na flešce). Zatím jsem vyzkoušel databázi MySql, a připojoval jsem k ní přes lokalní server od XAMPP. Tuto možnost v rámci přenositelnosti aplikace jsem zavrhl... Pak jsem zkoušel dle pokynů z článku zde využití LocalDB, ale při spuštění aplikace na virtuálním stroji vždy dojde k chybě .... že připojit se k databázi nelze.
Jde mi o to, že aby si každý uživatel nemusel instalovat např. nějaký server, tak aby mohl komunikovat s databází....Budu rád za každou zkušenost nebo doporučení jak se to běžně v praxi dělá :)

Lze vytvořit takové spojení, které bude propojené s lokální databází při instalaci aplikace nebo bude možné se připojit na nějaký server na internetu k databázi?

Díky

 
Odpovědět
17.2.2020 18:24
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na luckas
Jaroslav Smrž:17.2.2020 19:21

Ahoj, tomu, co potřebuješ se říká SQL server. Předpokládám, že aplikace je desktop, takže máš 2 možnosti:

  • Možnost A

Vytvořit instalaci programu a zahrnout do ni instalaci s nastavením SQL Server Express

  • Možnost B

Předělat aplikaci na webovou a budeš mít přístup odkudkoliv bez nutnosti cokoliv instalovat či nastavovat. Fakturační systém s databází odběratelů je celkem triviální záležitost a přepsat ho do webové formy by měla být otázka max 2 - 3 hodin.

Nahoru Odpovědět
17.2.2020 19:21
/* Life runs on code */
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Jaroslav Smrž:17.2.2020 19:24

Sorry, už v nadpisu píšeš, že jde o desktop. Jsem jen slepejš :)

Nahoru Odpovědět
17.2.2020 19:24
/* Life runs on code */
Avatar
d4rkw34v3r
Tvůrce
Avatar
d4rkw34v3r:18.2.2020 5:31

Nebo také existují řešení, která jen pripojis do projektu jako jeden soubor a funguje to taky pěkně. Tato řešení mají nějaká omezení, ale uvidíš sám co ti bude vyhovovat.

Na Google hledej pod výrazem "embedded database".

Pro příklad existuje např. Relační db Sqlite. Celkem zajímavá je tedka i 5 verze LiteDB

 
Nahoru Odpovědět
18.2.2020 5:31
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:18.2.2020 7:55

SQL lite ma tusim verzi, kterou neni nutne instalovat.

CSV soubor se da pouzit jako jednotabulkova databaze. Soucasne to jde editovat v excelu (kdyz si v nem vypne vselijake autokorekce a prevody sloupcu na datum-cas, penize a jine nesmysly). Muzes si vytvorit slozku a tech csv vytvorit vicero. Nebo to vse natlacit do jednoho souboru a pak to nejak rozsekat. Nebo to cele zazipovat :)

S propojovanim se serverem vidim problem. To by bylo idealni mi naistalovanou databazi u uzivatele. Ty programy maji takove moznosti, jako je msexchange a pod.
Ale, jestli chces neco na komunikaci s webem, tak existuji mini-web-browsery, ktere proste jen odesilaji a prijimaji pozadavky. Nicmene, tvuj program by musel volat program s cmd. wget/curl HTTPie (google = cmd web request win10). Funguje to jako ajaxovy request. Predas url s parametry vrati nejaka data, ktera prebira tva app. Cely prenost je tak bezpecny, jak moc muzes duverovat cizimu programu, ze neni plny bugu. Podobne, jako se duveruje treba browseru :)

Editováno 18.2.2020 7:56
 
Nahoru Odpovědět
18.2.2020 7:55
Avatar
Odpovídá na luckas
Michal Štěpánek:18.2.2020 8:22

Hodně záleží na tom, jak velká by měla být databáze, co všechno by měla obsahovat, kolik "řádků(záznamů)" apod., dále jestli mají ty počítače vidět do té samé DB (když budou na stejné "síti", je to brnkačka), nebo mají mít každý svoji DB, atd. Třeba by ti jako DB mohl dobře posloužit jen XML soubor...

Nahoru Odpovědět
18.2.2020 8:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
tesař.tech
Tvůrce
Avatar
tesař.tech:18.2.2020 15:10

To co hledáš se jmenuje SQLite. Tu je třeba dobrý tutorial https://www.codeproject.com/…sharp-VB-Net
nemusíš řešit žádný server, složité připojování a instalaci na počítač klienta, atd..

 
Nahoru Odpovědět
18.2.2020 15:10
Avatar
Jaroslav Smrž
Tvůrce
Avatar
Odpovídá na tesař.tech
Jaroslav Smrž:18.2.2020 19:17

Já bych stejně doporučoval vzdálenou DB v cloudu a API nebo aplikaci udělat jako webovou. Přidal bych i registr uživatelů, aby se i při instalaci na další PC zachovala data odběratelů nebo dodavatelů. S SQLite by se musel řešit nějaký backup soubor a to je uživatelsky poměrně otravné. Například v rámci 1 firmy s 15 PC by se musela data stále aktualizovat. V rámci sítě lze využít i SQL Server se sdílenou DB na serveru, ale to je málo efektivní a poměrně složité na nastavení i správu.

Nahoru Odpovědět
18.2.2020 19:17
/* Life runs on code */
Avatar
Filip Němeček
Tvůrce
Avatar
Filip Němeček:18.2.2020 19:34

Já jsem nedávno použil https://www.elephantsql.com/plans.html v základním plánu a vše v pohodě funguje. Hádám, že používáš Entity Framework, takže s ním je otázka změny DB chvilka, když už máš jednou napsanou logiku pro modely.

 
Nahoru Odpovědět
18.2.2020 19:34
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.