Vkladanie dat do Datagridview – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vkladanie dat do Datagridview – .NET – Fórum – Programujte.comVkladanie dat do Datagridview – .NET – Fórum – Programujte.com

 

Misiak0
Návštěvník
26. 12. 2008   #1
-
0
-

Ahojte,

snazim sa vlozit textove data z xml suboru do datagridview ale neviem ako na to. Vzdy mi zapise len posledny riadok.
Pridam riadok do datagridview :



DataGridViewRow riadok = new DataGridViewRow();
dataGridView1.Rows.Add(riadok);


for (int i = 0; i < detail_uzla.Count; i++)
{

if (detail_uzla[i].Name == "TextPoznamky")
{
dataGridView1.BeginEdit(true);
dataGridView1.Rows[dataGridView1.RowCount-1].Cells["poz"].Value = detail_uzla[i].InnerText;
}
}

skusal som riadky pridavat aj v cykle ale vysledok je stale rovnaky.
ako prosim vas dostat informacie do datagridview?

Nahlásit jako SPAM
IP: 78.99.16.–
rudolf_franek0
Stálý člen
26. 12. 2008   #2
-
0
-

Zkus pote co nastavis hodnoty zavolat:

dataGridView1.EndEdit()

PS: lepsi by bylo naplnit z toho xml nejakou kolekci vlastnich objektu nebo naplnit DataTable a tu pak dat jako DataSource toho DataGridView

Nahlásit jako SPAM
IP: 90.178.66.–
dannyk0
Věrný člen
26. 12. 2008   #3
-
0
-

A ses si jistej,ze mas spravne uzly a ze tam neni treba jen 1?
Protoze to,jak prochazis temi uzly se mi nejak nezda.
Zkus sem dat kompletni kod pro nacitani toho xml(vcetne kousku zdrojoveho xmlka),tohle se me fakt nezda.Bud pouzij XmlDataSource nebo mas mozna chybu v nacitani xml.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
mephi0
Expert
27. 12. 2008   #4
-
0
-

Nastavuješ len hodnotu stale rovnakeho riadku, musiš riadky pridavať.

GridView.Rows.Add("A","B","C");

Nahlásit jako SPAM
IP: 85.237.232.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
dannyk0
Věrný člen
28. 12. 2008   #5
-
0
-

No asi si na to kapl :)

Strc ty prvni dva radky,ktere tvori a pridavaj radek pod ten if a melo by to fungovat spravne.Celkove to je ale zajimavy zpusob pridavani :/ nemuzu si pomoct.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
rudolf_franek0
Stálý člen
28. 12. 2008   #6
-
0
-

mephi napsal:
Nastavuješ len hodnotu stale rovnakeho riadku, musiš riadky pridavať.

To neni pravda. Pridani radku se provadi na druhem radku. I kdyz ten cyklus je tam opravdu trochu navic... a dalo by se to napsat elegantneji. Nicmene to co jsem psal prvne fakt funguje ve spojeni s nahore uvedenym kodem.

Nahlásit jako SPAM
IP: 90.178.66.–
mephi0
Expert
29. 12. 2008   #7
-
0
-

To rudolf_franek : Aha až teraz som si všimol že je to len jedna iteracia pridania jedneho riadku. Pardon :)

Nahlásit jako SPAM
IP: 85.237.232.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Misiak0
Návštěvník
3. 1. 2009   #8
-
0
-

mno kapol nekapol....
skusal som uvedeny postup ze som si data ulozil do tabulky ale nemozem ich nacpat do toho datagridview.... aspon zatial neviem ako. pretoze prikaz datagridview1.datasource = tabulka; mi sice vykresli spravny pocet riadkov ale prazdnych...
prikladam jednotlive kusky kodu:
XML



<Poznamkovac>
<Poznamka>
<Datum>2.1.2009</Datum>
<Cas>22:45:50</Cas>
<TextPoznamky>prva poznamka</TextPoznamky>
</Poznamka>
<Poznamka>
<Datum>2.1.2009</Datum>
<Cas>22:45:50</Cas>
<TextPoznamky>druha</TextPoznamky>
</Poznamka>
<Poznamka>
<Datum>2.1.2009</Datum>
<Cas>22:45:50</Cas>
<TextPoznamky>tretia</TextPoznamky>
</Poznamka>
</Poznamkovac>


Prechod xml a naplnenie tabulky


public DataTable Prechod_xml() {

docx.Load("Poznamky.xml");
DataTable tabulka = new DataTable("Xmlpoznamky");
DataColumn stlpec = new DataColumn("poznamky", typeof(string));
tabulka.Columns.Add(stlpec);


XmlNodeList list = docx.DocumentElement.GetElementsByTagName("Poznamka");

for (int i = 0; i < list.Count; i++)
{
DataRow riadok = tabulka.NewRow();
tabulka.Rows.Add(riadok);
XmlNodeList nodepoznamka = list[i].ChildNodes;

for (int x = 0; x < nodepoznamka.Count; x++)
{
if (nodepoznamka[x].Name.Contains("TextPoznamky"))
{
riadok["poznamky"] = nodepoznamka[x].InnerText;
}
}
}
return tabulka;
}

Naplnenie datagridview


Loadxml lx = new Loadxml();
dataGridView1.DataSource = lx.Prechod_xml();

este je tu jedna malickost, datagridview ma zatial dva stlpce(checkbox,string) a tabulka zatial jeden...ten stlpec stringov by som prave chcel naplnit daty z tabulky

Nahlásit jako SPAM
IP: 158.196.44.–
rudolf_franek0
Stálý člen
3. 1. 2009   #9
-
0
-

Mas to napsane v zasade dobre, ale:
sloupecky, ktere jsi pridal v designeru jsou "unbound" - tedy nejsou ve spojitosti s DataSourcem a proto to nefunguje. Viz priloha.
Rozchodis to nasledovne:
1) vymaz sloupecky z gridu
2) aby se ti zobrazoval ten sloupecek pro checkbox pridej do definice DataTable jeste jeden sloupecek

DataColumn stlpec2 = 

new DataColumn("zaskrtavatko", typeof(bool));
tabulka.Columns.Add(stlpec2);

Takhle mi to ted fungovalo.

PS: Jeste elegantnejsi by bylo vytvorit v designeru DataSet a v nem DataTable s prislusnymi sloupecky s prislusnymi typy a tuto DataTable nastavit jiz v designeru jako DataSoure daneho grid view. A pak plnit tu prislusnou existujici DataTable.

Nahlásit jako SPAM
IP: 90.178.66.–
Misiak0
Návštěvník
3. 1. 2009   #10
-
0
-

To rudolf_franek : su niekde podrobnejsie informacie o tom ako sa pracuje s datovymi zdrojmi(dataset, tabulka, dataadapter....) a ich vzajomnymi relaciami aby som si to mohol riadne pozriet?....pretoze sa mi v mojom programe zda lepsie pouzit datatable ktory sa zobrazi v datagridview...ale mam v tom maly(velky) gulas

Nahlásit jako SPAM
IP: 158.196.44.–
dannyk0
Věrný člen
4. 1. 2009   #11
-
0
-

Tady sem nasel takovy maly prehled,neni tam myslim uplne vsechno,ale nektere typy tam jsou popsane.



http://nevmehta.blogspot.com/2006/10/datagrid-datagridview-data_116081795556443197.html

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
paashi0
Super člen
4. 1. 2009   #12
-
0
-

...na msdn byly videa, ač v angličtině, ale pomohly.
Například: http://msdn.microsoft.com/en-us/library/bb820887.aspx
Místo NorthwindDatabase se dá do projektu vložit vlastní dataset, navrhnout jeho strukturu (vytvořit tabulku) a potom ho vložit na okno aplikace (dataset se objeví v toolboxu). Další práce s datasetem, datagridview atd. je obdobná. Kromě toho, dataset má výbornou funkci ReadXML a WriteXML, která dělá všechnu tu dřinu s čtením a psaním do XML souboru.

Nahlásit jako SPAM
IP: 85.71.81.–
Ajem tíčr, andrgraund tíčr!
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 41 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý