in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

[Vb.Net] Il database più semplice basato su file

Ultimo messaggio ricevuto il 01-02-2008 9.13 da devspy. 3 risposta(e).
Pagina 1 di 1 (4 elemento/i)
Ordina messaggi: Precedente Successivo
  • 31-01-2008 15.32

    • Blisset
    • Utente Top 500
    • Registrato il 31-01-2008
    • Messaggi 2

    [Vb.Net] Il database più semplice basato su file

    Salve,

    qual è la soluzione più semplice per scrivere un programmino Visual Basic .NET 2008 che gestisca un database minimale basato su un file a singola tabella (tipo foglio elettronico) da 2000 record alfanumerici per una decina di campi?

    Non ho bisogno di complessi motori esterni di tipo SQL o Access, nè servizi Windows esterni, funzioni relazionali sofisticate, ecc. in quanto appunto non devo gestire milioni di dati sparsi in decine di tabelle, ma 1 singola micro tabella con pochi record e basta, da aprire eventualmente con Excel, non con Access che non uso.

    Qual è la soluzione più semplice in assoluto che mi consente VB .NET?

    Anche un componente di terze parti va benissimo.

    Grazie 

    PS:

    vediamo se riuscite a darmi una soluzione semplice, in quanto finora nessuno ha mai saputo rispondermi a quella che in sostanza è una domanda di una banalità enorme.

    Devo colpire una mosca, non consigliatemi di usare una bomba atomica. Wink

    • Log
  • 31-01-2008 16.28 In risposta a

    Re: [Vb.Net] Il database più semplice basato su file

    Te lo scrivo in C# solo perché per me è più veloce, altrimenti dovrei verificare il codice con VB.NET. Ma sicuramente la conversione da C# a VB.NET è il problema minore... Smile

    Per generare un database XML, personalizza il codice che segue. E' un'operazione che devi fare solo una volta

    DataSet ds = new DataSet("nome_database");
    DataTable dt = ds.Tables.Add("nome_tabella");
    dt.Columns.Add("nome_campo1", typeof(string));
    dt.Columns.Add("nome_campo2", typeof(int));
    dt.Columns.Add("nome_campo3", typeof(double));
    dt.Rows.Add(new object[ ] { "stringa", 123, 12.345 });
    // se ti interessa lo schema XML per validare i dati
    ds.WriteXmlSchema("database.schema.xml");
    // questo è il tuo database XML
    ds.WriteXml("database.xml");

    Per leggerlo e modificarlo è sufficiente:

    DataSet ds = new DataSet();
    ds.ReadXml("database.xml");

    Otterrai un DataSet identico a quello che avevi in memoria quando hai salvato i dati la prima volta.

    Se modifichi i valori della tabella (o delle tabelle), per salvare di nuovo:

    ds.WriteXml("database.xml");

    Abbastanza semplice, no? Wink

    Magari, dopo averlo convertito, potresti postare il codice qui... a beneficio di tutti quelli che avranno il tuo stesso problema. Che ne dici? Stick out tongue 

    Archiviato in: , , , ,
    • Log
  • 31-01-2008 17.37 In risposta a

    • Blisset
    • Utente Top 500
    • Registrato il 31-01-2008
    • Messaggi 2

    Re: [Vb.Net] Il database più semplice basato su file

    Quindi la soluzione che mi consigli è basata su un file XML.

    Puoi allegare qui un file xml di esempio che mi risulta da questo codice?

    Data la semplicità sai se funzionerebbe anche per VB6 ?

    Grazie 

    • Log
  • 01-02-2008 9.13 In risposta a

    Re: [Vb.Net] Il database più semplice basato su file

    Il file database.schema.xml conterrebbe qualcosa del genere:

    <?xml version="1.0" standalone="yes"?>
    <xs:schema id="nome_database" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <xs:element name="nome_database" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="nome_tabella">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="nome_campo1" type="xs:string" minOccurs="0" />
                  <xs:element name="nome_campo2" type="xs:int" minOccurs="0" />
                  <xs:element name="nome_campo3" type="xs:double" minOccurs="0" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:schema>

    Come già detto, però, questo file non è indispensabile perché ha l'unico scopo di definire la struttura del tuo database ai fini di validazione.

    Più interessante, invece, il "database" vero e proprio, che apparirebbe più o meno così:

    <?xml version="1.0" standalone="yes"?>
    <nome_database>
      <nome_tabella>
        <nome_campo1>primo record</nome_campo1>
        <nome_campo2>123</nome_campo2>
    <nome_campo3>12.345</nome_campo3> 
      </nome_tabella>
    <nome_tabella>
        <nome_campo1>secondo record</nome_campo1>     <nome_campo2>456</nome_campo2>     <nome_campo3>78.901</nome_campo3>
      </nome_tabella> </nome_database>

    Come vedi, è sufficientemente semplice da poter addirittura essere modificato a mano con NotePad o con un editor XML.

    La comodità nell'utilizzo con un linguaggio .NET è che sei in grado di ottenere e manipolare un oggetto nativo - il DataSet appunto - che dal punto di vista del codice è identico ad un qualsiasi DataSet derivato da un database vero e proprio. Con altri linguaggi meno recenti, rischi di dover gestire il documento XML "a mano" come fosse un file di testo oppure di dover cercare librerie di terze parti.

    Ad ogni modo, XML è un formato portabile e supportato praticamente da ogni file system, protocollo e linguaggio.

    Archiviato in: , , , ,
    • Log
Pagina 1 di 1 (4 elemento/i)
Prelevato da http://www.devspy.com/forums/p/4673/5843.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"