[.NET/Winforms]Lokale database

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Sspruijt
  • Registratie: Mei 2007
  • Laatst online: 19-09 15:11
Misschien is het een stomme vraag, maar na lang zoeken in de ongelofelijk grote berg aan informatie heb ik niet echt antwoord op mijn vraag kunnen vinden.

Ik ben nieuw met Visual Studio en wil een Windows Forms applicatie gaan schrijven. Voor deze applicatie wil ik een lokale database gebruiken. Ik wil alleen wel dat de PCs waarop de applicatie gaat draaien geen extra software nodig hebben. Nu is de vraag, als ik een database maak met bijvoorbeeld SQL Server Express of een database bestand, zal dit dan draaien op andere PC's die geen SQL server hebben geinstalleerd? Of kan ik hier beter een Access-bestand van maken? Maar dan blijft de vraag, moeten de client PCs dan Access geinstalleerd hebben?

Bedankt.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 10:43

Matis

Rubber Rocket

Ik zie niet hoe dit te maken heeft met programmeren, maar ik als je echt verbinding met een server wilt maken moet iedere pc lokaal een SQL server draaien. Access bestandje lijkt veel makkelijker...

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Tiemez
  • Registratie: December 2003
  • Laatst online: 24-10-2022
Je hebt geen access nodig om een access database in je applicatie te openen op een pc.

[ Voor 10% gewijzigd door Tiemez op 18-05-2009 16:03 ]


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 18:59

Haan

dotnetter

Als je een .mdf (SQL Express database) wil gebruiken, moet dit op alle clients geïnstalleerd worden. Een Access database zou dan beter zijn.

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Je kunt gebruik maken van Microsoft SqlServer Compact Edition (SqlCE). Dit is een embedded database met vrijwel dezelfde functionaliteit als de de express of full versions. SqlCe komt standaard met het .NET framework 3.5 (VS2008).

Maar je kunt ook kijken naar Sqlite of Firebird welke beide eveneens embedded databases zijn.

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Een SQL Server Express database heeft inderdaad software op de client nodig. Jij bent op zoek naar een embedded database.

Je kunt daarvoor bijvoorbeeld gebruik maken van SQL Server Compact Edition ( http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx ) of Firebird Embedded Server.

Het gebruik van SQL Server Compact is redelijk eenvoudig, aangezien je die in VS.NET gewoon met Add->New Item->Local Database gewoon aan je project toe kunt voegen. Voor de SQL Server Compact Edition heb je wel Assemlies nodig, maar die kun je gewoon zonder installer met je applicatie mee-leveren.
edit:

* Woy Schopt Niemand_Anders :(

offtopic:
Ik heb de Titel van het topic even aangepast zodat hij aan de richtlijnen voldoet: *** Over topictitels in PRG - lezen voor topic openen!!! ***

[ Voor 15% gewijzigd door Woy op 18-05-2009 16:21 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Basti504
  • Registratie: Februari 2005
  • Laatst online: 16:58

Basti504

Niet de enige, wel de echte.

Kijk voor embedded database ook eens naar SQLite, en dan speciaal naar de System.Data.Sqlite ADO .NET provider. Heb dat systeem laatst gebruikt voor mijn programma en het werkt perfect. :)

...


Acties:
  • 0 Henk 'm!

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Tiemez schreef op maandag 18 mei 2009 @ 16:03:
Je hebt geen access nodig om een access database in je applicatie te openen op een pc.
Hmm, goed punt. Het lijkt er inderdaad op dat de JET engine een onderdeel is dat standaard aanwezig is binnen Windows (zie o.a. http://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine). Wel is het (min of meer) noodzakelijk om Access op je ontwikkelomgeving te hebben.

Mocht je snel willen weten of het werkt, maak een Access databaseje met een tabel aan (in bijv. C:\temp\mydb.mdb). Probeer vervolgens of je connectie kunt maken met deze database via OleDB door:
C#:
1
2
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\temp\mydb.mdb"));
conn.Open();

Belangrijk voor de minder ervarenen onder ons: ;)
- Zorg ervoor dat je de OleDb namespace importeert ("using System.Data.OleDb"), anders compiled het niet.
- Let op de "@" voor de connectiestring - deze zorgt ervoor dat je de backslashes in het pad niet dubbel hoeft te schrijven.

Als dit lukt, kun je o.m. deze walkthrough (ja, uit 2003, ok) volgen om een beetje feeling te krijgen:
http://msdn.microsoft.com/en-us/library/ms971485.aspx

Ik raad je wel aan om, voor de zekerheid, je code ook nog even uit te voeren op een computer zonder Access geinstalleerd voordat je al te mooie dingen bedenkt ;)

[ Voor 0% gewijzigd door MrBucket op 18-05-2009 23:01 . Reden: Slordigheidje ]

Pagina: 1