Am creating small aplication like a phonebook, but i dont know which database to use ? any sugestions? I wont something that is free, easy to implement with c#, and just a local database not some big server staff

Recommended Answers

All 15 Replies

I have a question about that. Why is SQL Express a better choice than an Access database? Is it easier, better performing, more flexible or what? Or is it more a matter of personal preference? Also, if one distributes an app storing data in an SQL database, wouldn't the user need to install SQL Express on their machine?
I'm asking because it seems (to me) that using SQL would be easier, but I am much more familiar with Access. I'd like to know which would be the better choice to learn with going forward.

Mainly personal preference, though I would guess SQL Server is faster than Access.

Also, in terms of overall support, I think you'll find higher quantity and quality support/articles discussion for SQL Server than Access.

Plus, in C#, there are specific namespaces for SQL Server, whereas with Access, you'd have to go through ODBC.


In my opinion either go with MS Access or use a typed binary file of your data structure if you can handle it (for cases where entry count will be less than 1k); because latter will remove your dependence to ADO.Net, Jet Engine and database compaction issues.

Loren Soth

I'm currently using an Access database for a project I'm working on.

My reason for it is that it's pretty easy to embed the connectionString in an app.config file, and change the location of the database. Since it's a local file, it's portable (ie, you can zip up the application, the config file, and the database file) to use on other machines.

I guess a typed binary file would work, but if you're talking about .NET, it just seems easier to me to use an Access database for such a small application. If you were wanting to go with something where people would collaborate on or share the data, I'd move to SQL Server Express.

File from SQL express edition can be portable as well, so you can embedd them into your project, therefore another advantage of SQL express edition over Access is it's storage volume
Access: 2GB
SqlEX: 4 GB

and another advantage most important is that Access won't work as well as SqlEX with relationional tables. Access was not designed for relational table fashion, its morelike where you have more columns per table and less tables, meanwhile SQLEX will work best when you have multiple tables and you join them to get the desired results as well you gain on normalization and volume space, speed, etc,...


You can use SQL quries with Access too as you know. The main problem with SQL Express is the deployment (you need to install it w/ your app) and it isn't free for commercial products. As soon as Microsoft sets SQL Server free I might consider it as an alternative to MS Access (thus also to ADO/Jet Engine) for commercial desktop (where no client/server connectivity is required) projects w/ high data load.

Loren Soth

SQL Express isn't free for distribution? If not, that pretty much settles it for me, since the other differences between that and Access seem to be mainly a matter of personal preference. Regarding the maximum database size, it is doubtful I'd ever develop a program that required anywhere close to even 2GB, so that factor would never come into play.

SQL express is free, or at least it was a month or two ago when I downloaded it. I can't imagine that would have changed. Also sqlexpress supports sub-queries, which I don't believe access does. Also, in my experience, sqlexpress recovers better from errors than access. I have had instances where there was an error and the access connection would not start working again without rebooting.

The point, though, is that applications can access an MDB file (Access database), without the user having to own Access.

SQL Server, while the superior database, isn't portable in that regard. I'm so used to developing for enterprises and web applications, that I forget that not everyone has dedicated database servers.

For a portable, desktop, application, I think Lord Soth makes a valid point.


SQL Express and all express products are free for personal use, but they aren't free (not allowed at all to be exact) for commercial use, commercial products or redistribution. Even if they had been allowed, the deployment of a full scale sql server with services isn't easy from within your installer. On the technical part : MS Access supports some form of views equivalent to MS SQL views using which you can emulate sub-queries. On the other hand all SQL server products have full transaction support with multi roll-back and commit points while MS Access don't support but only mimics to some extent using some ADO caching and operation modes.

Loren Soth

which is the best sql or oracle ?and why?

could tell me which the best databace (sql or oracle) with ( and c#)?
from side security ,paltporm and all features for both ,and what is the disadventages ?


SQL Express and all express products are free for personal use, but they aren't free (not allowed at all to be exact) for commercial use, commercial products or redistribution.

This is flat out not true. SQL Server 2008 R2 Express page "Available free for both development and deployment."

And Adrian Collier, the Program Manager for Visual Studio Express has this to say about commercial products: "the 2010 Express SKUS can be used to create commercial software." (8th post down on this thread started by him).

SQL Express will give better performance than Access. It allows for a larger database. If you expect your product to grow the database over time, SQL Express is the better choice.

As far as I can recall (back to Express 2003) they have always been allowed for comercial uses.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.