tags:

views:

129

answers:

9

Ok before I explain... I know Access should basically not be used anymore.

My application now uses access for its portability.. its an internal application and makes private/internal database storage a snap.

Problem is, it uses JET 4.0 which is not supported in 64 bit operating systems and is frankly not very well implemented anymore.

I am developing using C# .NET visual studio 2008. I am looking for a way to do this with some other database type that would not require me to install anything else on a users computer. I looked into sqlite but there's no easy way to implement it in visual studio

An Ideas?

+8  A: 

You can use SQL Server Compact 3.5 (the embedded version of SQL Server 2008).

Oded
That looks promising. So I would not have to install any extra components on a users computer for this database to work?
Tyler
According to http://msdn.microsoft.com/en-us/library/bb190958%28v=SQL.100%29.aspx you'll still need to install a runtime on the users pc
StephaneT
The runtime for sql server compact does not really *need* to install separat from your program, just reference the dll:s in your project and mark them as copy local and youll be ready to go.
Stefan
There's a way to deploy it without have to install the extra stuff. found it here http://msdn.microsoft.com/en-us/library/aa983326.aspx
Tyler
A: 

Did you try with H2?

The main features of H2 are:

Very fast, open source, JDBC API
Embedded and server modes; in-memory databases
Browser based Console application
Small footprint: around 1 MB jar file size

Check out about implementation:

http://www.google.ba/search?sourceid=chrome&ie=UTF-8&q=C%23+h2+database

Adnan
+1  A: 

SQL Server Express edition should come with Visual Studio. It is an option at installation time, IIRC.

Brent Arias
+1  A: 

Access has a couple of key characteristics: - Single-user - Requires installation

For alternatives this gives you (at least):

  • SQL Compact (doesn't require installation, single-user)
  • SQLite (doesn't require installation, single-user--although multi-user is supported)
  • SQL Express (multi-user, requires install)
STW
Access is not alawys single user, it's just a lot simpler that way.
HLGEM
A: 

This is one reason why people continue to use Access. Of course you want an easy solution that doesn't require any installs on the client side.

We've all assumed so far your users are disconnected from your SQL Server. If they can connect, you're home free. It's less of a problem if you need to support read-only disconnected use, more of a problem if you need to pull updated data from disconnected users.

Can you tell us more about what you need?

Beth
+1  A: 

SQL CE is a good option as already mentioned. You could also consider xml if the data is not private and you don't have concurrent users (which is very likely if you are using Access). Xpath provides a lot of the features you would normally need from database queries and storage. You also wouldn't need to install anything.

Madison
+3  A: 

I recommend System.Data.Sqlite (http://sqlite.phxsoftware.com/), a managed, open-source ADO.Net wrapper around the open-source Sqlite database. No installation required - you just include the single DLL in your solution. It boasts a small footprint, encryption, and good performance.

ebpower
I use SQLite extensively for local data storage. The great thing about it is no install. Just make sure the System.Data.Sqlite library gets deployed with your app, and it works wonders.
thorkia
A: 

Firebird can be a very good alternative to Access and have very good dot net driver

Here is a comparison between Firebird Embedded and SQL Server Compact Edition

Hugues Van Landeghem
A: 

How about XML? Easy to use, and it works on any platform. Not the easies to implement if you're unfamiliar with it, but it's pretty rad once you learn how it works.

CrowderSoup