November Black Friday C/C++ week
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C/C++

Diskuze: Editace *.mdf

Aktivity (1)
Avatar
krysta24
Člen
Avatar
krysta24:9. července 8:46

Kontext: O databázích prakticky nic nevím, jdu na to metodou kousek videa od Inda + pokus/omyl. Vytvořil jsem si ve Visual Studiu (2017) .mdf datbázi, jednoduchý seznam knih s nějakými parametry, pro program ověřující validitu výběru knih k maturitě. Přidával jsem další a další, ale samozřejmě ikdyž jsem šel CTRL + C/V, tak jsem něco nakopíroval špatně atd.

Dotaz: Do databáze mi jde přidal další položky, ale nejde mi editovat položky třeba uprostřed. Dostanu hlášku "No row was updated. Ther row value(s) updated or deleted either do not make the row unique or they alter multiple rows(43)" Vzhledem k tomu, že je tam vše jen jednou, tak je problém, že to upravuje více řad, ale vůbec nevím co s tím. Je nějaký způsob, jak upravit položku?

Vedlejší dotaz: Když databázi použiju, jako zdroj dat pro ComboBox, tak mi taky nejde upravovat. A musel jsem to spojení smazat a pak znova vytvořit. Není nějaká možnost ho jen dočasně vypnout? (hláška něco ve smyslu connection is closed)

Předem díky za rady.

Zkusil jsem: Googlit bez valného úspěchu

Chci docílit: Jednoduché databáze knih s parametry, podle se kterými bych mohl dál pracovat.

 
Odpovědět
9. července 8:46
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na krysta24
Jaroslav Smrž:9. července 10:45

Jakym zpusobem se snazis updatovat zaznam? Pomoci nejakeho CRUD systemu nebo primo ve VS v server exploreru? Jaky typ databaze? MsSQL?

Editováno 9. července 10:46
Nahoru Odpovědět
9. července 10:45
/* Life runs on code */
Avatar
krysta24
Člen
Avatar
Odpovídá na Jaroslav Smrž
krysta24:9. července 10:46

Přímo ve VS

 
Nahoru Odpovědět
9. července 10:46
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9. července 10:55

VS nepouzivam.
Jak to tak ctu, tak jsem i rad :)

Php / MySql - kdyz si udelas php program a pripojis ho na mysql databazi, tak s databazi pracujes pomoci sql prikazu. Tabulky v databazi se daji normalne exportovat do excelu (csv), totez import. A nebo se da pouzit probram phpMyAdmin nebo jiny, ktery umoznuje editovat primo databazi, tabulku klikanim bez nutnosti znat sql prikazy.

Cili, predpokladam, ze nejake takove veci jdou i u tebe.
Predpokladam, ze ve VS mas objekt, treba combobox. Objekt ma jeden z parametru data-source. Ty mu tam zadas tu databazi a nejaky prikaz, ktery data filtruje na konktretni sloupce.
Nevim, jak dalece je VS rozvinute, ale mela by byt moznost zmenit toto nastaveni. Ale asi jen odpojit od zdroje dat nepujde. To bych pouzil prave smazani.

Hele, a nemohl bys jako zdroje dat pouzit excelove sheety?
A nebo, nemuzes pouzit MsSql?
A nebo, nemuzes pouzit Csv (ktere lze editovat v excelu)?
Nevim, jak moc pujde s tou .mdf databazi pracovat a tak. Viz ten phpMyAdmin. Predpokladam, ze na editaci databaze mas nejaky program a needitujes plain text nejakeho souboru pres ctrl+c / v. Vetsinou, kdyz ma soubor exotickou priponu, mdf a pod, tak pouziva i specialni strukturu, nezobrazitelne znaky. Proto bych doporucil csv/text, to se da editovat i v note-padu a nebo v excelu jako tabulka.
(ale jen hadam)

 
Nahoru Odpovědět
9. července 10:55
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na krysta24
Jaroslav Smrž:9. července 12:29

Otevři si Microsoft SQL Server (samostatný program) a zkus updatovat záznam v něm. Patrně někde dochází k nedostatečnému oprávnění pro editaci záznamu nebo chybě ve spojení. Zkus sem hodit nějaké screeny ze server exploreru, abych věděl, jak to vypadá a jak postupuješ.

Nahoru Odpovědět
9. července 12:29
/* Life runs on code */
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na krysta24
Jaroslav Smrž:9. července 12:33

Ještě mě napadá, nemáš tam náhodou duplicitní ID? To by vše vysvětlovalo. Hoď sem strukturu databáze a budeme ti moci lépe poradit.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět
9. července 12:33
/* Life runs on code */
Avatar
krysta24
Člen
Avatar
Odpovídá na Jaroslav Smrž
krysta24:9. července 15:44

Díky, to je asi ono. Chybělo mi tam ID, myslel jsem, že jako ID bych použil přímo jméno té položky. Asi to ale nebyl moc dobrý nápad.

Jiný způsob by byl určitě taky možný, ale tohle mi teď přijde, jako přijatelné řešení.

 
Nahoru Odpovědět
9. července 15:44
Avatar
Jaroslav Smrž
Redaktor
Avatar
Odpovídá na krysta24
Jaroslav Smrž:9. července 19:02

Zaznamy je dobre cislovat ve sloupci ID a nastavit mu auto increment. To znamena, ze kdykoliv pridas novy zaznam, automaticky ziska sve jedinecne ID podle ktereho pak muzes pracovat s jednotlivymi zaznamy s minimalni zatezi databaze.

Nahoru Odpovědět
9. července 19:02
/* Life runs on code */
Avatar
Odpovídá na Jaroslav Smrž
don.jarducius:11. července 8:11

Záleží na tom, kde je dobré aby vznikal primární klíč...

  1. buď v DB - zde se hodí číslo s autoinkrementem
  2. v aplikaci - zde se používá Guid a číslo s autoinkrementem se zde vůbec nehodí
Nahoru Odpovědět
11. července 8:11
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Odpovídá na Peter Mlich
don.jarducius:11. července 8:14

Nechceš se začít vyjadřovat k dotazům pod které se vyjadřuješ?
Všiml jsem si, že všude bezhlavě cpeš všem PHP a dost často nenapíšeš nic k tématu, které se řeší...

Nahoru Odpovědět
11. července 8:14
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
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 10.