Chceš se vypracovat až k výdělku 160.000 Kč/měsíc? Důležité je začít. Staň se programátorem díky rekvalifikačnímu kurzu! Začni dnes!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
hurvajs
Člen
Avatar
hurvajs:8.11.2012 19:16

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:8.11.2012 19:39
SELECT row FROM table WHERE id=cislo
 
Nahoru Odpovědět
8.11.2012 19:39
Avatar
hurvajs
Člen
Avatar
hurvajs:8.11.2012 19:43
Editováno 8.11.2012 19:46
 
Nahoru Odpovědět
8.11.2012 19:43
Avatar
Kit
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:8.11.2012 19:48

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:8.11.2012 19:48

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:8.11.2012 19:49

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

 
Nahoru Odpovědět
8.11.2012 19:49
Avatar
Зайчик
Člen
Avatar
Odpovídá na hurvajs
Зайчик:8.11.2012 19:50

však na csv tu máš celý tutoriál ^^ http://www.itnetwork.cz/…-souboru-csv

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

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
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:8.11.2012 19:54

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:8.11.2012 19:56

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:8.11.2012 19:59

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:8.11.2012 20:01

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
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:8.11.2012 20:03

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
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:8.11.2012 20:05

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:8.11.2012 20:11

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
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:8.11.2012 20:15

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 Hartinger
Tým ITnetwork
Avatar
Odpovídá na hurvajs
David Čápka Hartinger:8.11.2012 21:28

.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
You are the greatest project you will ever work on.
Avatar
hurvajs
Člen
Avatar
Odpovídá na David Čápka Hartinger
hurvajs:9.11.2012 18:24

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:9.11.2012 18:48
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:9.11.2012 19:04

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:9.11.2012 19:08

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:9.11.2012 19:42
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
Tvůrce
Avatar
matesax:9.11.2012 20:02

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
Tvůrce
Avatar
Odpovídá na hurvajs
Mediel:10.11.2012 22:02

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
Tvůrce
Avatar
Odpovídá na Mediel
matesax:10.11.2012 22:02

Jak jsem psal - databáze...

 
Nahoru Odpovědět
10.11.2012 22:02
Avatar
Mediel
Tvůrce
Avatar
Mediel:10.11.2012 22:07

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
Tvůrce
Avatar
Odpovídá na Mediel
matesax:10.11.2012 22:19

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
Tvůrce
Avatar
matesax:11.11.2012 7:42
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:11.11.2012 10:22

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:11.11.2012 10:52

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:11.11.2012 10:57

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:11.11.2012 11:04

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:11.11.2012 11:12

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:11.11.2012 11:18

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
Tvůrce
Avatar
Odpovídá na matesax
Kit:11.11.2012 11:31

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:11.11.2012 11:41

to je jenom na zkoušku..

 
Nahoru Odpovědět
11.11.2012 11:41
Avatar
Mediel
Tvůrce
Avatar
Mediel:11.11.2012 11:51

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:11.11.2012 12:44

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
11.11.2012 12:44
Avatar
Mediel
Tvůrce
Avatar
Mediel:11.11.2012 12:46

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:11.11.2012 12:50

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

 
Nahoru Odpovědět
11.11.2012 12:50
Avatar
Kit
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:11.11.2012 13:27

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:11.11.2012 14:01

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
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:11.11.2012 14:07

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:11.11.2012 14:12

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
Tvůrce
Avatar
Odpovídá na hurvajs
Kit:11.11.2012 14:23

.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
Tvůrce
Avatar
Odpovídá na Kit
matesax:11.11.2012 14:55

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

 
Nahoru Odpovědět
11.11.2012 14:55
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:11.11.2012 15:24

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
Tvůrce
Avatar
Odpovídá na matesax
Kit:11.11.2012 15:54

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:11.11.2012 18:35

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
Tvůrce
Avatar
Odpovídá na hurvajs
Mediel:12.11.2012 1:53

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:12.11.2012 5:54

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
Tvůrce
Avatar
Odpovídá na matesax
matesax:12.11.2012 6:02

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:12.11.2012 8:21

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
Tvůrce
Avatar
Odpovídá na hurvajs
matesax:12.11.2012 8:24

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
Tvůrce
Avatar
Odpovídá na matesax
Kit:12.11.2012 8:49

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
Tvůrce
Avatar
Odpovídá na Kit
matesax:12.11.2012 8:52

Ale tady to bohatě stačí...

Editováno 12.11.2012 8:52
 
Nahoru Odpovědět
12.11.2012 8:52
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:12.11.2012 8:57

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
Tvůrce
Avatar
Odpovídá na Kit
matesax:12.11.2012 9:11

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
Tvůrce
Avatar
Odpovídá na matesax
Kit:12.11.2012 9:50

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 Hartinger
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka Hartinger:12.11.2012 9:59

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
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Čápka Hartinger
Kit:12.11.2012 12:57

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:15.1.2013 18:06

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:15.1.2013 18:07

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.