PDA

View Full Version : [.NET] Applicazione con DB (o simili) facilmente portabile


dupa
24-05-2006, 16:58
Allora, vorrei realizzare un'applicazioncina in .NET
L'applicazione prevede salvataggio/lettura di dati, quindi sarebbe molto comodo poter usare SQL a riguardo con un DB.

Visto che non conosco .NET vorrei chiedervi, ma esiste una sorta di database manager molto basilare integrato in .NET?

Cioè io vorrei che quando distribuisco l'.exe della mia applicazione.. l'exe stesso si crea un file pippo.dat e se lo gestisca internamente come se fosse un DB mettendo a me (programmatore) a disposizione la possibilità di usare SQL per salvare/leggere dati.

In pratica non voglio che quando devo distribuire la mia applicazione uno si debba installare un DB o driver odbc strani a altro. insomma vorrei fare qualcosa che poi in fase di distribuzione abbia meno problemi possibile.

(una possibilità sarebbe usare file .XML e xpath per leggerli) però se si potesse restare in ambito SQL sarebbe mooolto meglio.

Grazie

cali1981
24-05-2006, 18:02
Creado proprio che se usi SQL devi avere SQL server installato... Ti consiglio di usare i dataset e i fuiles XML, puoi usare delle query che non sono SQL ma sono molto simili!

Ciao!

dupa
24-05-2006, 18:41
Creado proprio che se usi SQL devi avere SQL server installato... Ti consiglio di usare i dataset e i fuiles XML, puoi usare delle query che non sono SQL ma sono molto simili!

Ciao!

ecco sì io son abituato a usare SQL visto che generalmente programmo su server con DB installato, ora dovrei fare un'applicazione che gira invece su client e quindi nn è il massimo costringer l'utente a installare chissa che schifezze.

Conosco XML ma i dataset, ma sentiti, provo a buttarci un occhio.

Se qcun altro ha idee... :)

cali1981
24-05-2006, 18:55
Beh u dataset è una specie di database...
In pratica baste che crei uno schema utilizzando .NET, ovvero una serie di tabelle. Poi fai

Datase ds = new Dataset()
ds.ReadXml(path);

dove path è il path del file XMl. Ora hai i dati del file xml e puoi fare

DataRow[] drArray = ds.Table1.Select("Nome = Pippo");

e l'array di DataRow conterrà tutte le righe che hanno il campo nome uguale a Pippo!

Ciao e spero di essere stato utile!

0rph3n
24-05-2006, 19:00
Allora, vorrei realizzare un'applicazioncina in .NET
L'applicazione prevede salvataggio/lettura di dati, quindi sarebbe molto comodo poter usare SQL a riguardo con un DB.

Visto che non conosco .NET vorrei chiedervi, ma esiste una sorta di database manager molto basilare integrato in .NET?

Cioè io vorrei che quando distribuisco l'.exe della mia applicazione.. l'exe stesso si crea un file pippo.dat e se lo gestisca internamente come se fosse un DB mettendo a me (programmatore) a disposizione la possibilità di usare SQL per salvare/leggere dati.

In pratica non voglio che quando devo distribuire la mia applicazione uno si debba installare un DB o driver odbc strani a altro. insomma vorrei fare qualcosa che poi in fase di distribuzione abbia meno problemi possibile.

(una possibilità sarebbe usare file .XML e xpath per leggerli) però se si potesse restare in ambito SQL sarebbe mooolto meglio.

Grazie
No nessuna sorta di "sorta di database manager molto basilare integrato in .NET".
Secondo me comunque l'accopiata XML ADO.NET potrebbe fare al caso tuo, ti riporto un estratto da una pagina dell' MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/adonetbest.asp):
Integration with XML

ADO.NET provides extensive XML integration in the DataSet, and also exposes some of the XML functionality provided by SQL Server 2000 and later. You can also make use of SQLXML 3.0 for extensive access to the XML functionality in SQL Server 2000 and later. Here are tips and information when using XML and ADO.NET.
The DataSet and XML

The DataSet is tightly integrated with XML providing you with the ability to:

* Load the schema or relational structure of a DataSet from XSD Schema.
* Load the contents of a DataSet from XML.
* Infer the schema of a DataSet from the contents of an XML document when no schema is supplied.
* Write the schema of a DataSet as XSD Schema.
* Write the contents of a DataSet as XML.
* Have synchronous access to both the relational representation of your data using the DataSet, as well as the hierarchical representation of your data using the XmlDataDocument.

Note You can use this synchronization to apply XML functionality such as XPath queries and XSLT transformations to the data in your DataSet, or to provide a relational view of all, or a subset of the data in an XML document while preserving the fidelity of the original XML.

For detailed information on the XML functionality provided with the DataSet, see XML and the DataSet.
Una volta caricati i dati dalla sorgente XML nel DataSet potrai interrogare quest'ultimo (purtroppo però non tramite query in SQL :cry: )!
Dai un'occhiata qui:
XML and the DataSet (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconXMLDataSet.asp)
Ovviamente devi conoscere anche la struttura di ADO.NET:
ADO.NET (http://msdn2.microsoft.com/en-us/library/e80y5yhx(VS.80).aspx)
e dei DataSet:
DataSet Class (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatadatasetclasstopic.asp)

'iao

dupa
24-05-2006, 19:05
Mi pare di capire che sto DataSet si interfaccia a un file .xml e oltre a poter leggere i dati da sto .xml può anche modificarli e riesportare il DataSet in un file .xml aggiornato.. giusto?

perchè io (in Java) per leggere XML usavo Xpath, però nn mi risulta che con Xpath puoi anche scrivere facilmente aggiornando il file .xml
Gracias

0rph3n
24-05-2006, 19:07
ecco sì io son abituato a usare SQL visto che generalmente programmo su server con DB installato, ora dovrei fare un'applicazione che gira invece su client e quindi nn è il massimo costringer l'utente a installare chissa che schifezze.

Conosco XML ma i dataset, ma sentiti, provo a buttarci un occhio.

Se qcun altro ha idee... :)
I DataSet sono una cache costituita dai dati letti (in questo caso da un file XML), praticamente sono lo schema di un database, quindi al loro interno troveranno posto tabelle (DataTable) e relazioni (DataRelation), il tutto residente in memoria!

dupa
24-05-2006, 19:09
I DataSet sono una cache costituita dai dati letti (in questo caso da un file XML), praticamente sono lo schema di un database, quindi al loro interno troveranno posto tabelle (DataTable) e relazioni (DataRelation), il tutto residente in memoria!
ma dopo aver aggiornato in memoria i dataset è facile ri-esportare (salvando su disco) l'xml aggiornato?

Grazie!

0rph3n
24-05-2006, 19:10
Mi pare di capire che sto DataSet si interfaccia a un file .xml e oltre a poter leggere i dati da sto .xml può anche modificarli e riesportare il DataSet in un file .xml aggiornato.. giusto?
:winner: You win! :winner:

:D

Però il verbo interfacciare non è appropriato.
Diciamo che il DataSet è una rappresentazione in memoria dei dati presenti nel file XML e di come sono strutturati!

cali1981
24-05-2006, 19:15
Per risalvare i dati del dataset basta che fai ds.WriteXml("File.xml")!

0rph3n
24-05-2006, 19:15
Ne più ne meno di quanto sia facile leggerlo!

Leggere:
Datase ds = new Dataset()
ds.ReadXml(path);
Scrivere:
ds.WriteXml(path);

0rph3n
24-05-2006, 19:18
Per risalvare i dati del dataset basta che fai ds.WriteXml("File.xml")!
:cry: mi anticipi sempre :cry:

:ncomment:








:D

cali1981
24-05-2006, 19:22
Eh si! Ma tu gli hai detto più cose su ADO.NET!!

Ciao e alla prossima "sfida" di velocità!