Avatar
hurvajs
Člen
Avatar
hurvajs:

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.

 
Odpovědět 8.11.2012 19:16
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:
SELECT row FROM table WHERE id=cislo
 
Nahoru Odpovědět 8.11.2012 19:39
Avatar
hurvajs
Člen
Avatar
hurvajs:
Editováno 8.11.2012 19:46
 
Nahoru Odpovědět 8.11.2012 19:43
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

To není txt, ale CSV.

Nahoru Odpovědět 8.11.2012 19:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:

Nepoužívá se to na databáze? Já to ukládám do csv

 
Nahoru Odpovědět 8.11.2012 19:48
Avatar
hurvajs
Člen
Avatar
Odpovídá na Kit
hurvajs:

ale csv je snad textový soubor, tedy txt ne ? :)

 
Nahoru Odpovědět 8.11.2012 19:49
Avatar
Зайчик
Člen
Avatar
Nahoru Odpovědět 8.11.2012 19:50
Коммунизм для нашего будущего!
Avatar
hurvajs
Člen
Avatar
hurvajs:

Na to už jsem se díval, ale řešení na můj problém tam není, nebo ho tam nevidím...

 
Nahoru Odpovědět 8.11.2012 19:53
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

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.

Nahoru Odpovědět 8.11.2012 19:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:

vypsání zákazníků

No na toto bych použil DB... (Uchovávání zákazníků.)

Editováno 8.11.2012 19:57
 
Nahoru Odpovědět 8.11.2012 19:56
Avatar
hurvajs
Člen
Avatar
Odpovídá na Kit
hurvajs:

Já jsem to myslel tak, že se dá to csv uložit pod příponou txt... Asi jsem to špatně napsal.

 
Nahoru Odpovědět 8.11.2012 19:59
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:

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

 
Nahoru Odpovědět 8.11.2012 20:01
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

Některé operační systémy podle přípony asociují ikony a aplikace. Jinak je bez významu.

Nahoru Odpovědět 8.11.2012 20:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

SQL se dá dobře naučit asi za 2 dny, použitelné základy zvládneš za 2 hodiny.

Nahoru Odpovědět 8.11.2012 20:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
hurvajs
Člen
Avatar
Odpovídá na Kit
hurvajs:

Snad jo, zítra to musím našprtat a pak tvořit jako ďas :) (tlačí mě termín)

 
Nahoru Odpovědět 8.11.2012 20:11
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

Můžeš použít SQLite. Je to jen malá knihovna, neinstaluje se. Databázi uchovává v jednom souboru, který se dá přenášet.

Nahoru Odpovědět 8.11.2012 20:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na hurvajs
David Čápka:

.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.

Nahoru Odpovědět 8.11.2012 21:28
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
hurvajs
Člen
Avatar
Odpovídá na David Čápka
hurvajs:

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 = new string[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;



        }
 
Nahoru Odpovědět 9.11.2012 18:24
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:
public string[] FindCustomerById(string id)
{
    string line = "";

    using (StreamReader sr = new StreamReader(file))
        while ((line = sr.ReadLine()) != null)
            if (line.StartsWith(id))
                return line.Split(";");

    return null;
}
Editováno 9.11.2012 18:49
 
Nahoru Odpovědět 9.11.2012 18:48
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:

Díky, ještě bych potřeboval poradit s výpisem dat do list boxu..
pro výpis zákazníků do listboxu používám toto

public Form1()
        {
            InitializeComponent();
            DatabazeC customer = new DatabazeC("customers.txt");
            customer.Read();
            listBox1.Items.Clear();
            listBox1.Items.AddRange(customer.back());

        }

ale do listboxu se mi vypíše místo dat jen WindowsFormsAp­plication1.Cus­tomer
zde je ta metoda customer.back

public Customer[] back()
        {
            return customer.ToArray();
        }

a když chci vypsat toho vyhledaného zákazníka, tak mi to v list boxu píše
String[] Array

 
Nahoru Odpovědět 9.11.2012 19:04
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:

To je mi celkem nanic - jaká jsou data na vstupu - před převodem do array? (na což bych nepoužil metodu... :) )

Pošli větší kus kódu... :)

Editováno 9.11.2012 19:10
 
Nahoru Odpovědět 9.11.2012 19:08
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:
class DatabazeC
    {
        private List<Customer> customer;
        private string file;



        public DatabazeC(string file)
        {
            customer = new List<Customer>();
            this.file = file;
        }

        public void AddCustomer(int id, string name, string address, int psc, string phoneNumber, string email)
        {
            Customer nO = new Customer(id, name, address, psc, phoneNumber, email);
            customer.Add(nO);
        }

        public Customer[] back()
        {
            return customer.ToArray();
        }

        public void Save()
        {

            using (StreamWriter sw = new StreamWriter(file))
            {

                foreach (Customer nC in customer)
                {

                    string[] data = { nC.Id.ToString(), nC.Name, nC.Address, nC.Psc.ToString(), nC.PhnoneNumber, nC.Email };

                    string line = String.Join(";", data);

                    sw.WriteLine(line);
                }

                sw.Flush();
            }

        }

        public void Read()
        {


            using (StreamReader sr = new StreamReader(file))
            {
                string line;

                while ((line = sr.ReadLine()) != null)
                {

                    string[] data = line.Split(';');
                    int id = int.Parse(data[0]);
                    string name = data[1];
                    string address = data[2];
                    int psc = int.Parse(data[3]);
                    string phoneNumber = data[4];
                    string email = data[5];


                    AddCustomer(id, name, address, psc, phoneNumber, email);
                }
            }
        }
        public int ID()
        {
            string line;
            int buffer = 0;
            using (StreamReader sr = new StreamReader(file))
            {

                while ((line = sr.ReadLine()) != null)
                {
                    string[] data = line.Split(';');
                    int id = int.Parse(data[0]);
                    if (id > buffer)
                    {
                        buffer = id;
                    }
                }
            }
            buffer = buffer + 1;
            return buffer;
        }

        public string[] FindCustomer(string id)
         {
             string line = "";

             using (StreamReader sr = new StreamReader(file))
                 while ((line = sr.ReadLine()) != null)
                     if (line.StartsWith(id))

                         return line.Split(';');

             return null;


        }
    }
}
class Customer
    {
        public int Id { get; private set; }
        public string Name { get; private set; }
        public string Address { get; private set; }
        public int Psc { get; private set; }
        public string PhnoneNumber { get; private set; }
        public string Email { get; private set; }

        public Customer(int id,string name, string address, int psc, string phoneNumber, string email)
        {
            Id = id;
            Name = name;
            Address = address;
            Psc = psc;
            PhnoneNumber = phoneNumber;
            Email = email;

        }
    }
 
Nahoru Odpovědět 9.11.2012 19:42
Avatar
matesax
Redaktor
Avatar
matesax:

ListView...

foreach (Customer item in customer)
{
    ListViewItem li = new ListViewItem(item.Id);
    li.Subitems = xxx;
    listView1.Items.Add(li);
}
Editováno 9.11.2012 20:03
 
Nahoru Odpovědět 9.11.2012 20:02
Avatar
Mediel
Redaktor
Avatar
Odpovídá na hurvajs
Mediel:

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ě...

Nahoru Odpovědět 10.11.2012 22:02
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:

Jak jsem psal - databáze...

 
Nahoru Odpovědět  +1 10.11.2012 22:02
Avatar
Mediel
Redaktor
Avatar
Mediel:

Určitě DB, alespoň Access, když už tedy nic jiného. A pokud skládají nějaký větší projekt, tak oddělit GUI od funkcionality :)

Nahoru Odpovědět 10.11.2012 22:07
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:

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...

Editováno 10.11.2012 22:21
 
Nahoru Odpovědět 10.11.2012 22:19
Avatar
matesax
Redaktor
Avatar
matesax:
using System.Collections.Generic;
using System.Data.SqlServerCe;
using System.Linq;
using System;

public class TableManager
{
    private SqlCeConnection Connection { get; set; }

    public TableManager(SqlCeConnection connection)
    {
        Connection = connection;
        Connection.Open();
    }

    public List<List<object>> Select(string tableName)
    {
        List<List<object>> rows = new List<List<object>>();

        SqlCeCommand getData = Connection.CreateCommand();
        getData.CommandText = "SELECT * FROM " + tableName;

        using (SqlCeDataReader reader = getData.ExecuteReader())

            while (reader.Read())
            {
                List<object> row = new List<object>();

                for (int i = 0; i < reader.FieldCount; i++)
                    row.Add(reader.GetValue(i));

                rows.Add(row);
            }

        return rows;
    }

    public List<List<object>> SelectRowsBy(string tableName, string column, string searchingValue)
    {
        List<List<object>> rows = new List<List<object>>();

        SqlCeCommand getData = Connection.CreateCommand();
        getData.CommandText = "SELECT * FROM " + tableName + " WHERE " + tableName + "." + column + "='" + searchingValue + "'";

        using (SqlCeDataReader reader = getData.ExecuteReader())

            while (reader.Read())
            {
                List<object> row = new List<object>();

                for (int i = 0; i < reader.FieldCount; i++)
                    row.Add(reader.GetValue(i));

                rows.Add(row);
            }

        return rows;
    }

    public void Insert(string tableName, string[] columns, object[] parameters)
    {
        SqlCeCommand setData = Connection.CreateCommand();
        string values = String.Join(", ", columns);
        setData.CommandText = "INSERT INTO " + tableName + " (" + values.Replace("@", "") + ") VALUES (" + values + ")";

        for (int index = 0; index < columns.Length; index++)
            setData.Parameters.AddWithValue(columns[index].Replace("@", ""), parameters[index]);

        setData.ExecuteNonQuery();
    }

    public void Update(string tableName, string idOfUpdatingRow, string[] columns, object[] parameters)
    {
        SqlCeCommand updateData = Connection.CreateCommand();

        string buildedColumns = String.Join(", ", columns);

        updateData.CommandText = "UPDATE " + tableName + " SET " + buildedColumns.Replace("@", "") + "=" + buildedColumns + " WHERE id=@id";
        updateData.Parameters.AddWithValue("@id", idOfUpdatingRow);

        for (int index = 0; index < parameters.Length; index++)
            updateData.Parameters.AddWithValue(columns[index], parameters[index]);

        updateData.ExecuteNonQuery();
    }

    public void DeleteBy(string tableName, string column, string searchingValue)
    {
        SqlCeCommand removeData = Connection.CreateCommand();
        removeData.CommandText = "DELETE FROM " + tableName + " WHERE " + tableName + "." + column + "='" + searchingValue + "'";
        removeData.ExecuteNonQuery();
    }
}
 
Nahoru Odpovědět 11.11.2012 7:42
Avatar
hurvajs
Člen
Avatar
Odpovídá na Mediel
hurvajs:

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)

 
Nahoru Odpovědět 11.11.2012 10:22
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:

Díky za takový kus kód, zatím se ho snažím pochopit, co se v něm děje (sql), ale při zkoušce připojení k mé databázi mi to hází chybu...

try
            {
                TableManager pokus = new TableManager(Properties.Settings.Default.DatabaseConnectionString);
                MessageBox.Show("jde");
            }
            catch
            {
                MessageBox.Show("nejde");
            }

asi tam patří něco jiného než Properties.Set­tings.Default­.DatabaseConnec­tionString, ale nevím co..

 
Nahoru Odpovědět 11.11.2012 10:52
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:

Patří tam ConnectionString...

new SqlCeConnection("server=jméno serveru; user id=jméno uživatele; password=heslo k účtu; database=databáze;")

Údaje dosaď pochopitelně své...

Editováno 11.11.2012 10:58
 
Nahoru Odpovědět 11.11.2012 10:57
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:

Měl by jsi při vytvoření DB dostat soubor s tímto stringem - xxx.config - já dostal:

Data Source=|DataDirectory|\Database1.sdf
Editováno 11.11.2012 11:05
 
Nahoru Odpovědět 11.11.2012 11:04
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:

už mi funguje připojení :D

SqlCeConnection x = new SqlCeConnection(Properties.Settings.Default.DatabaseConnectionString);
                TableManager pokus = new TableManager(x);
                MessageBox.Show("jde");

Takhle "štastnej" jsem už dlouho nebyl :D

 
Nahoru Odpovědět 11.11.2012 11:12
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:

Ale ten try blok - takto ne prosím... :)

Editováno 11.11.2012 11:18
 
Nahoru Odpovědět 11.11.2012 11:18
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Však to má jen kvůli diagnostice, jestli mu to připojení k DB vůbec jede.

Nahoru Odpovědět 11.11.2012 11:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:

to je jenom na zkoušku..

 
Nahoru Odpovědět 11.11.2012 11:41
Avatar
Mediel
Redaktor
Avatar
Mediel:

Proč sis bral projekt z programování, když nemáš sebemenší ponětí jak to udělat? Nebo ti byl projekt přidělen?

Nahoru Odpovědět 11.11.2012 11:51
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
hurvajs
Člen
Avatar
Odpovídá na Mediel
hurvajs:

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á :D tento rok je to ale jiné, dostali jsme učitele z Microsoftu a ten to s náma bere od začátku...

 
Nahoru Odpovědět  +2 11.11.2012 12:44
Avatar
Mediel
Redaktor
Avatar
Mediel:

Tichá závist :) Každopádně tedy kouknu na ten projekt :) MySql dáváš?

Nahoru Odpovědět 11.11.2012 12:46
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
hurvajs
Člen
Avatar
Odpovídá na Mediel
hurvajs:

teď se to snažím naučit pomocí samostudia

 
Nahoru Odpovědět 11.11.2012 12:50
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

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.

Nahoru Odpovědět 11.11.2012 13:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
hurvajs
Člen
Avatar
Odpovídá na Kit
hurvajs:

Já mám v c# tu jejich databázi a to asi není MySQL, teda alespoň si myslím, že to není MySQL

 
Nahoru Odpovědět 11.11.2012 14:01
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

Kdybys tam měl MySQL, určitě bys o tom věděl. Instaluje se zvlášť nebo v rámci různých WAMP, ale určitě ne zabalený s C#.

Nahoru Odpovědět 11.11.2012 14:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
hurvajs
Člen
Avatar
Odpovídá na Kit
hurvajs:

V tom případě tam MySQL nemám, wamp jsem neinstaloval a v c# ta databáze má pak koncovku .sdf

 
Nahoru Odpovědět 11.11.2012 14:12
Avatar
Kit
Redaktor
Avatar
Odpovídá na hurvajs
Kit:

.sdf je přípona pro soubory Microsoft SQL Server Compact (SQL CE). Bohužel jsem nikde nenašel, co všechno z jazyka SQL umí.

Nahoru Odpovědět 11.11.2012 14:23
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Můj TableManager je přesně na to...

 
Nahoru Odpovědět  +1 11.11.2012 14:55
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Na co? Vůbec z toho nevidím, co SQL CE umí. Jenom vím, že neumí pohledy, triggery a integritní omezení. Nejspíš neumí ani cizí klíče, nebo snad ano?

Nahoru Odpovědět 11.11.2012 15:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

Jak tak koukám, SQL CE cizí klíče umí. Dokonce umí i transakce. To je víc než umí MySQL, tedy až na ty triggery. Už jsem našel i soupis funkcí.

Nahoru Odpovědět 11.11.2012 15:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
hurvajs
Člen
Avatar
hurvajs:

Po odpoledním spánku jsem zase narazil na moji tupost.. při snaze vypsat všechny objednávky

foreach (var order in databaze.Select("Orders"))
            {

                listBox1.Items.Add(order);
            }

tak mi to vypíše jen (Collection)

 
Nahoru Odpovědět 11.11.2012 18:35
Avatar
Mediel
Redaktor
Avatar
Odpovídá na hurvajs
Mediel:

Hod mi sem mail :) nebo napis na muj erdt.martin@seznam.cz

Nahoru Odpovědět 12.11.2012 1:53
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:

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?

Editováno 12.11.2012 5:57
 
Nahoru Odpovědět 12.11.2012 5:54
Avatar
matesax
Redaktor
Avatar
Odpovídá na matesax
matesax:

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);
}
Editováno 12.11.2012 6:02
 
Nahoru Odpovědět 12.11.2012 6:02
Avatar
hurvajs
Člen
Avatar
Odpovídá na matesax
hurvajs:

díky, až přijdu domů, tak tam hodím tu tabulku bude to lepší a přehlednější...

 
Nahoru Odpovědět 12.11.2012 8:21
Avatar
matesax
Redaktor
Avatar
Odpovídá na hurvajs
matesax:

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ší...

Editováno 12.11.2012 8:26
 
Nahoru Odpovědět 12.11.2012 8:24
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

To je stejné, jako kdybys místo SQLite doporučoval MySQL. Také to není vždy vhodné.

Nahoru Odpovědět 12.11.2012 8:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Ale tady to bohatě stačí...

Editováno 12.11.2012 8:52
 
Nahoru Odpovědět 12.11.2012 8:52
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

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ů.

Nahoru Odpovědět 12.11.2012 8:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:

Jenže já se tu bavím o MS SQL. A na lokální DB LINQ prostě použít nejde...

 
Nahoru Odpovědět 12.11.2012 9:11
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:

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ů.

Nahoru Odpovědět 12.11.2012 9:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:

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.

Nahoru Odpovědět 12.11.2012 9:59
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

To znamená, že by LINQ mohlo zvládnout i soubory .sdf . Myslím si, že instalovat síťovou databázi kvůli lokální aplikaci je zbytečný luxus.

Nahoru Odpovědět 12.11.2012 12:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
hurvajs
Člen
Avatar
hurvajs:

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...

 
Nahoru Odpovědět 15.1.2013 18:06
Avatar
hurvajs
Člen
Avatar
hurvajs:

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...

 
Nahoru Odpovědět 15.1.2013 18:07
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 63 zpráv z 63.