Potřeboval bych trošku osvětlit využití toolboxu DataSet k práci se souborem. Podle knihy MSVC# 2005 Krok za krokem jsem si už hrál s databází v MS SQL, ale myslím, že by to mělo jít i bez něj. Dejme tomu, že mám vstupní datový xml soubor vytvořený programem a chci ho po spuštění načíst do tabulky a pracovat s ním. Na MSDN jsem našel nějaký příklad, ale bohužel pro verzi pp. z roku 2000 a prostě to nefunguje, ani když jsem to intuitivně upravil.
Když zkusím vložit DataSet, vyžaduje připojení ke zdroji dat. V mém případě by to byl soubor, ale nenašel jsem xml. No prostě jsem z toho jelen. Nemáte někdo vhodnou radu, jak začít?
Fórum › .NET
Práce s DataSet
Zdar,
myslím, že nejlepší bude, když to uděláš, tak jak je napsáno tady: http://msdn2.microsoft.com/en-us/library/ekw4dh3f(VS.80).aspx. Mělo by to stačit - tedy pokud jsem správně pochopil tvůj záměr.
Tak přesně tohle jsem zkoušel a nešlo mi to. Ještě si s tím pohraju a kdyby něco, napíšu. Ale díky za odkaz :-)
To paashi: aha ... zkusím to taky
Tak jsem na to přišel. Sice to trvalo, ale stačilo najít ten správný příklad na MSDN.
Jde o to, že DataSet musí mít zdroj. Samozřejmě se dá všecko připojit za běhu, ale pro mě bylo výhodnější vytvořit všechno při vývoji. Nevím proč, ale musel jsem to udělat následovně (jen tak se vytvořil soubor zdrojXML.h, bez něhož se nenačte nový zdroj dat):
- Vytvořil jsem nový XSD soubor (datové schéma pro XML)
- V menu Project jsem tento XSD přidal pomocí "Add Existing Item"
- V panelu DataSources se objevil nový zdroj dat. V případě, že se neobjeví, kliknu na "Add new data source" a vyberu "Object". V nabídce by se měl zobrazit vložený XSD soubor (resp. jeho schéma). Pokud se neobjeví, je potřeba celý projekt znovu sestavit.
- Dál už se s dataSet pracuje normálně (např. jako při vazbě na SQL databázi)
Horší je to s vyhledáváním v měněné datové tabulce. Možná jsem si to moc zkomplikoval, ale mám tabulku uživatelů, do které se může kdykoliv přidat nový a kdykoliv stávající odebrat. Při zápisu nového uživatele se údaje zapíšou na konec XML bez ohledu na jeho pořadí. Vyhledávání pomocí DataView se uskutečňuje po seřazení dat v dataView (vlastnost Sort), ale data se neřadí v DataSet (nechápu proč). Takže když jsem vyhledal uživatele a zjistil index řádku v seřazené tabulce v dataView, následným dotazem na data v tom řádku v DataSet jsem dostal údaje z nesetříděné tabulky, takže data jiná. Nakonec jsem to vyřešil tak, že data vybírám z DataGridView, kde se řádky seřadí tak jak mají a index z hledání v DataView odpovídá správnému řádku v DataGridView.
int rowIndex = 0;
dataView1->Sort = "ID"; //"ID" je název sloupce, ve kterém se má hledat
rowIndex = dataView1->Find(textBox4->Text); //v textBoxu je hledaný výraz
dataGridView1->Rows[rowIndex]->Cells[1]->Value; //Toto je hodnota v buňce v řádku rowIndex a ve sloupci 2 (s indexem 1)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
DataSet (DataTable) a uvolnovanie z pamäte — založil manro
Z MySQL do ListView pres DataSet? — založil JiriVavru
Jak dostat pouze jednu urcitou hodnotu z Dataset.Table? — založil JiriVavru
Menu , prace s textovymi soubory - závěrečná práce , nevim si rady :( — založil honzajs
Práce v Irsku - Práce v IT a jiných oborech — založil MakeITinIreland
Moderátoři diskuze