Programové vytvorenie tabuľky – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Programové vytvorenie tabuľky – .NET – Fórum – Programujte.comProgramové vytvorenie tabuľky – .NET – Fórum – Programujte.com

 

Staso0
Duch
2. 6. 2009   #1
-
0
-

Ahoj.

Vo Visual C# 2008EE potrebujem na základe behu programu programovo vytvárať tabuľku
pre dáta ktorej konfigurácia sa mení. Všetko by išlo, len mám problém ako nastaviť
potrebný typ dát:



//vytvor inštanciu mien stĺpcov
string[] nStl = new string[] {};

//vytvor inštanciu typov dát stĺpcov
string[] tStl = new string[] {};

//deklarácia názvov stĺpcov
nStl = new string[] {"X", "Y", "Z"};
//deklarácia typu dát stĺpcov
tStl = new string[] {"Int", "Double", "Long"};

//vytvor dataset
DataSet ds = new DataSet();
//vytvor datatable
DataTable dt = new DataTable();

//pre všetky mená stĺpcov
for (int i = 0; i <= meno.GetUpperBound(0); i++)
{
//vytvor nový datacolumn
DataColumn dc = new DataColumn();
//nastav jeho meno
dc.ColumnName = meno[i];

//tu by malo nastaviť typ dát v stĺpci ale pri behu programu dôjde k výnimke
//System.ArgumentException was unhandled. Message="Column requires a valid DataType."
dc.DataType = System.Type.GetType(typ[i]);

// Pri druhom spôsobe - typeof, už pri písani dostanem chybu:
//The type or namespace name 'typ' could not be found (are you missing
//a using directive or an assembly reference?)
dc.DataType=typeof(string);

//pridaj stĺpec do tabuľky
tbl.Columns.Add(dc);
}



Ak by niekto vedel navrhnúť funkčné riešenie už dopredu ďakujem.
Staso

Nahlásit jako SPAM
IP: 84.47.84.–
rudolf_franek0
Stálý člen
4. 6. 2009   #2
-
0
-

Priste by bylo lepsi uvadet kod, tak aby byl alespon skoro zkompilovatelny, a ne takhle...
1)

string[] nStl = new string[] {};
Je zbytecne volat konstruktor pro prazdny array, pokud hned nasledne volas
nStl = new string[]{"X", "Y", "Z"};
S klidnym srdcem muzes na zacatku hodnotu nastavit na null, nebo ji rovnou nainicializovat na ty tve hodnoty.
2)
Type.GetType("Int")
vraci null - to je ten problem. Abys dosahl toho co chces, je treba tam dat
Type.GetType("System.Int32")
a podobne

Nahlásit jako SPAM
IP: 90.178.66.–
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, 19 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ý