Zdravím, potřeboval bych poradit s tímto maturitním projektem, při
pokusu vypsání zákazníků do listBoxu mi to píše blbosti a také nevím
jak vyřešit vyhledávání zákazníka podle jeho id a následné vypsání do
listboxu. Na odkazu je zatím můj "výtvor" http://uloz.to/xRgopvz/mat-zip
Byl bych rád, kdyby mi s tím někdo poradil.
Textový soubor je obecné označení, CSV je textový soubor s nějakou
strukturou. XML je také textový soubor, ale s jinou strukturou. Totéž HTML,
CSS, JS, TeX, YAML, JSON, ... Všechny jsou textové soubory.
Nad použitím databáze jsem uvažoval, ale jelikož vůbec neumím sql
dotazy, tak jsem to zamítl... Ale asi to bude nejvhodnější předělat to na
databázi a sql se naučit
.NET má nějakou embedded verzi databáze, nezkoušel jsem to, ale mám
ověřené, že to jde rychle naklikat a nemusíš nic řešit ani instalovat,
funguje to potom všude.
Nějak mi ušlo, na co se konkrétně ptáš. Úplně nejlepší by bylo,
kdybys poslal kus kódu co nefunguje nebo popsal problém, který řešíš. Ten
projekt se mi luštit moc nechce, to bych tu nedělal nic jiného.
Ptal jsem se na vyhledání zákazníka podle id a jeho následné vrácení
do pole, které by se vypsalo v listboxu, zde je kód
public Customer[] FindCustomer(int id)
{
string line;
int buffer = 0;
string[] g = newstring[1];
using (StreamReader sr = new StreamReader(file))
{
while ((line = sr.ReadLine()) != null)
{
string[] data = line.Split(';');
buffer = int.Parse(data[0]);
if (id == buffer)
{
g = data;
}
}
}
return g;
}
publicstring[] FindCustomerById(string id)
{
string line = "";
using (StreamReader sr = new StreamReader(file))
while ((line = sr.ReadLine()) != null)
if (line.StartsWith(id))
return line.Split(";");
returnnull;
}
Prosím tě, napiš mi sem zadání té maturitní práce Podle mě jsi k tomu přistoupil
dosti nehezky. Tedy co koukám do toho, co již máš a uploadnul jsi to na
ulož.to
Mám tedy nějakou mlhavou představu, ale nejsem si plně jist, co by to tedy
mělo dělat a nemělo. Je to část tvého projektu, nebo je toto celé?
Pakliže je to celé, řešíš to zbytečně složitě, pakliže z podobných
útržků skládáte nějaký větší projekt, začal jsi špatně...
V C# normálně local db. A udělat si objekt - který bude "lepit" SQL
dotazy. Šlo by použít i serverovou a LINQ to SQL, ale tady se ty dotazy
přímo hodí...
A rovnou by se daly řádky z db vytáhnout do listu Users. A User by měl ty
potřebné vlastnosti atp...
K tomu zadání, program by měl umět vytvořit novou objednávku a u té
později evidovat odpracované hodiny a materiál ( i jeho cenu), dále
vytvořit zákazníka a vytvořit fakturu. Vyfakturované objednávky a faktury
ukládat do nějakého archivu. Na uložtu je jen rozpracovaný projekt, není
to celé,ale už je to jedno, jelikož to jdu dělat v té databázi. Zvolil
jsem si tu lokální(.sdf)
SqlCeConnection x = new SqlCeConnection(Properties.Settings.Default.DatabaseConnectionString);
TableManager pokus = new TableManager(x);
MessageBox.Show("jde");
Já už se učím programovat ve škole třetím rokem => projekt s
programováním, ale předchozí dva roky mě učil učitel se znalostma, které
mám já tento rok je to
ale jiné, dostali jsme učitele z Microsoftu a ten to s náma bere od
začátku...
MySQL je spíš jednoduché datové úložiště než databáze. Na web to
většinou jakž takž stačí, na maturitní projekt také, ale větší
aplikaci bych na tom raději nestavěl.
Používáš-li můj TableManager, tak je to seznam řádků, ty ale musíš
přidávat jednotlivé buňky...
foreach (var order in databaze.Select("Orders"))
{
ListViewItem lvi = new ListViewItem(order[0]);
for (int index = 1; index < order.Count; index++)
lvi.SubItems.Add(order[index]);
listBox1.Items.Add(lvi);
}
Ale to je fuj! Používej na databáze DataGridView...
Mediel - Achjo - nic se tu na mejla neposílá - vše se řeší na fóru -
to snad víš - ne?
Stačilo si to prohlédnout: List<List<object>> A var - fujfuj!
Ještě mi tam chybí převod object na string:
foreach (List<object> order in databaze.Select("Orders"))
{
ListViewItem lvi = new ListViewItem(order[0].ToString());
for (int index = 1; index < order.Count; index++)
lvi.SubItems.Add(order[index].ToString());
listBox1.Items.Add(lvi);
}
No nejlepší co můžeš udělat je Binding na DataGridView - ten se pak
postará o přidávání , mazání, editaci a získávání dat... Takže ti
pak stačí tak 3 - 4 řádky kódu. Za cenu toho, že tento element pravda
není zrovna nejpěknější a blbě se upravuje, ale dá se udělat celkem
pěkným a pro tyto účely stačí bohatě...
Proto bych zvolil serverovou DB a binding vytvořil přes LINQ - to bude asi
nejjednodušší a nejefektivnější...
Tady často nejde o to, že "to stačí". Souborové databáze jsou v mnoha
případech výhodnější, než serverové. Zejména tam, kde se velmi často
čte a málo zapisuje, jako např. u webů.
Otázkou je, zda je LINQ potřebné a vhodné. Jestli to chápu dobře,
jedná se vlastně o jakýsi ORM framework, u kterých pohodlí jednoduchých
dotazů bývá vyváženo složitostí komplikovanějších dotazů.
LINQ je zajímavá technologie, ORM je jen její část. Můžeš zde volat
SQL dotazy a dokonce i nad nedatabázovými strukturami. Dělá se s tím docela
hezky a Microsoft pro to uzpůsobil hodně věcí, určitě je to jednodušší
cesta.
Po delší odmlce jsem zpátky, i s novým úplně novým řešením..viz
odkaz http://leteckaposta.cz/327444330
mám problém s uložením List<> do databáze (lokal. databeze), tak
kdyby někdo mohl poradit...
Po delší odmlce jsem zpátky, i s novým úplně novým řešením..viz
odkaz http://leteckaposta.cz/327444330
mám problém s uložením List<> do databáze (lokal. databeze), tak
kdyby někdo mohl poradit...
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.