Pages: [1]   Go Down
Print
Author Topic: Quale DB usare  (Read 2686 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Backdoor
Apprendista Forumista
**
Offline Offline

Posts: 117



« on: 07-04-2012, 20:01:24 »

Vorrei realizzare un'applicazione in c# che utilizza per la memorizzazione dei dati un DB...
L'applicazione sarà di tipo commerciale...
Che database posso usare? Cosa mi consigliate?
Grazie!
Logged
chief dr.Cox
Forumista
***
Offline Offline

Posts: 552



« Reply #1 on: 07-04-2012, 20:43:03 »

MsSql server 2008 R2

poi in dot net ci sono connettori per tantissimi DB.
Logged

Microsoft Student Partner
Backdoor
Apprendista Forumista
**
Offline Offline

Posts: 117



« Reply #2 on: 07-04-2012, 22:31:10 »

che versione di MsSql si può usare per progetti commerciali? si deve acquistare una licenza?
Logged
hukketto
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.000



« Reply #3 on: 17-04-2012, 00:26:15 »

io sto usando sqlite, che non è paragonabile ad un rdbms come mssql ma se non hai particolari esigenze è molto versatile.
Logged

LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #4 on: 17-04-2012, 13:08:38 »

sqlite è anche parecchio veloce se non fai molte scritture concorrenti
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
shiny
Forumista
***
Offline Offline

Posts: 810



WWW
« Reply #5 on: 17-04-2012, 19:56:08 »

MSSQL sicuramente e' la scelta migliore se guardi alle prestazioni, ma naturalmente ci sono dei costi di licenza non indifferenti. Circa 2 anni fa ho fatto uno studio sui vari dbms e se la tua applicazione puo' perdere qualche millisecondo in piu' (rispetto a MSSQL) allora la scelta ricade su postgreSQL che e' opensource (di gran lunga migliore a mysql se devi gestire trigger, procedure e transazioni).
« Last Edit: 17-04-2012, 19:58:33 by shiny » Logged
trinoox
Forumista
***
Offline Offline

Gender: Male
Posts: 590



WWW
« Reply #6 on: 17-04-2012, 20:05:15 »

Come mai nessuno punta su oracle? c'è anche la versione express(gratis, di libero uso e redistribuzione)... che è libera... regge anche un certo carico... ed è praticamente supportato da tutti i linguaggi più comuni(oltre l'immensa documentazione ...).
http://www.oracle.com/technetwork/products/express-edition/overview/index.html
Logged

"Se segnassimo a caso dei punti su un foglio di carta, si potrebbe individuare sempre e comunque un'equazione matematica tale da rendere conto di quanto fatto." - Leibniz
hukketto
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.000



« Reply #7 on: 17-04-2012, 21:27:10 »

volete paragonare il footprint di sqlite a mssql oracle mysql o postgresql ? Smiley
per un applicazione desktop, magari portabile non ho trovato alternative a sqlite
Logged

Backdoor
Apprendista Forumista
**
Offline Offline

Posts: 117



« Reply #8 on: 02-05-2012, 08:35:06 »

qualcuno di voi è riuscito ad usare sqlite con c# ?
ho provato qualche guida ma niente da fare...
mentre con mysql in 2 minuti tutto funziona senza problemi!
Logged
hukketto
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.000



« Reply #9 on: 02-05-2012, 13:44:36 »

Io ce l'ho fatta abbastanza egregiamente, ma non ho usato lo scaffolding di VisualStudio per il databinding.
Trovi comunque un sacco di aiuti sul web (stackoverflow è un'ottima fonte). Tu che problemi hai avuto comunque?
Logged

Backdoor
Apprendista Forumista
**
Offline Offline

Posts: 117



« Reply #10 on: 04-05-2012, 16:41:05 »

mi dispiace ma ho eliminato il progetto con il quale provavo ad agganciarmi a sqlite...
potresti spiegarmi come hai fatto o inviarmi un tuo esempio in cui ne fai uso?
mi basta anche la sola parte di codice con la quale richiami e usi sqlite... non per forza l'esempio completo funzionante...

grazie anticipatamente.
Logged
hukketto
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.000



« Reply #11 on: 04-05-2012, 19:17:02 »

Quote

using System;
using System.Data.SQLite;
using System.Data;

namespace MYAPP.pocos
{
    class DBUtil
    {
        public static SQLiteConnection sql_con;
       
        public static void SetConnection()
        {
             if (DBUtil.sql_con == null)
                 DBUtil.sql_con = new SQLiteConnection("Data Source=DATABASE.db;Version=3;New=False;Compress=True;");
        }

        public static DataSet LoadData(string CommandText)
        {
            SetConnection();
            DBUtil.sql_con.Open();
            SQLiteCommand sql_cmd = DBUtil.sql_con.CreateCommand();
            SQLiteDataAdapter DB = new SQLiteDataAdapter(CommandText, sql_con);
            DataSet DS = new DataSet();
            DB.Fill(DS);
            DBUtil.sql_con.Close();
            return DS;

        }

        public static void ExecuteQuery(string txtQuery)
        {
            try
            {
                Console.WriteLine(txtQuery);
                SetConnection();
                sql_con.Open();
                SQLiteCommand sql_cmd = DBUtil.sql_con.CreateCommand();
                sql_cmd.CommandText = txtQuery;
                sql_cmd.ExecuteNonQuery();
                DBUtil.sql_con.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("ECCEZIONE " + e.ToString());
            }
        }
    }
}



molto semplicemente uso questa classe come wrapper per sqlite
e poi uso i metodi statici LoadAll per le query che mi tornano un dataset
e ExecuteQuery per le altre query come delete, replace e update

ad esempio

Quote

....
 public void Delete()
        {
            string txtSQLQuery = "delete from MYTABLE where MYFIELD =" + this.privateprop;
            DBUtil.ExecuteQuery(txtSQLQuery);
        }
.....


e

Quote

[...]
 private void LoadAll(string lookup)
        {
            string CommandText = "SELECT * from MYTABLE where MYFIELD = '"+lookup+"'";
            DataSet DS = new DataSet();
            DataTable DT = new DataTable();
            DS = DBUtil.LoadData(CommandText);
            DT = DS.Tables["Table"];
            try
            {
                foreach (DataRow row in DT.Rows)
                {
                    this.id = Convert.ToInt64(row["id"]);
                    this.field1 = row["field1"].ToString();
                    this.field2 = row["field2"].ToString();
                    this.field3 = row["field3"].ToString();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
         
        }
[...]


ricorda ovviamente di fare l'escape delle stringhe in input
questi sono snippet molto molto base che non usano nemmeno le prepared statement (che potresti/dovresti usare)

ovviamente devi importare nel tuo progetto la libreria ADO.NET 2.0 Data Provider for SQLite (System.Data.SQLite)

immagino che con mysql avrai avuto vita molto più facile a fare drag&drop di dataset e datagrid :) però SQLite ha il suo perchè se devi sviluppare un'applicazione portabile e svincolata da altre installazioni.
Se devi gestire lavoro in concorrenza invece SQLite non è proprio il top...


ricordo che questo esempio mi ha aiutato a muovere i primi passi:
http://www.codeproject.com/Articles/22165/Using-SQLite-in-your-C-Application
Logged

Pages: [1]   Go Up
Print
Jump to: