Does it matter which Database you decide to use in your VB.net program? If someone could give me a Pros and Cons of maybe performance/ simplicity/ potential that would be great. I know Access fairly well, but if SQL is better I would like to switch over.
Yes it matters. If you are talking about a real system you should use SQL Server without even considering access as an alternative.
MS access is a light database management system oriented to amateurs. It lacks many of the administration tools needed on a real system. Of course, it is a lot easier to setup and learn.
SQL Server is a relational database management system providing professional tools. SQL Server Management Studio is the default graphical tool on which you can administer your SQL Server instance.
Regarding performance SQL Server is definetely better. Regarding simplicity Access is a lot easier to learn. Regarding potential I suppose the SQL server certainly is better.
Perhaps this post could clarify things for you...
Hope I helped!
It depends upon your program bro.
let me start with MS ACCESS, MS Access is actually a combination of a rapid development UI tool and file system based relational database (JET). Access is intended for end users. it does not cater multiple users. however, it is easy to deploy and much cheaper especially for small installations.
on the other hand, MS SQL SERVER is a Client-server relational database system, with no UI development tools built in. It is also designed to support more users a lot easier to maintain because of its tools provided. Compared to MS ACCESS, it is more complex and has No built-in UI development tools - You will need another dev platform to build a front-end and (arguably) reporting. In my case, i usually implement Crystal reports as my reporting tool....
In conclusion. It is really your choice on what database you are going to use....if its just a simple application, better use MS ACCESS... but if you are creating an application that caters client server interaction, better use MS SQL SERVER...
Related
Im looking through all the options in Visual Studio for database integratiion with Winforms apps. I am just overwhelmed by the options. It's not that I can't read about each of them on MSDN which I have done, it's that most of them seem adequate. Basically I have a fairly large collection of financial data which I need to stuff into a db an run queries on it from a Windows Form. Can someone briefly advice which of Service Based Databas, ADO.Net and all it's varients, Local Database, SQL Server Compact 4.0 Local Databace, Service Based Database etc would be suited to the task? Or just generally if any of them are NOT suited at all?
I would use SQL Server Express, which is a free version of SQL Server.
Why? it has very good tools and will grow and scale-up very easily, whether you wish to add more (large volumes) of data, or support multiple front-ends - ASP.NET, mobile, Winforms, MVC, MS Access.
You may wish to connect to your SQL Server back-end with Access to run ad-hoc queries and generate quick reports off of them and at the same time keep expose your data through services via .NET. SQL Server will support all these front-ends at the same time.
All of these are variants of SQL Server. Just create the database in whatever manner you like, and use Entity Framework (or at worse, classic ADO.NET) to interact with it.
Lacking other specific requirements and assuming your data is less than the 10GB limit for the free SQL Server 2010 Express. If you find that you need to store more than 10GB, or evolve to use other features of SQL Server, the upgrade path is very straightforward.
Entity Framework is generally a very productive way to access the database from WinForms. If you're not familiar with it, I would recommend setting aside some time to learn to use it if you can. You will quickly make up the time invested in productivity gains.
At the moment I am using Access & an OleDb connection to store data. I went down this route originally because I though that this was the best way for applications that I am distributing to my clients.
I would prefer to use something like SQL Server but is this a good idea for software I am distributing? Does the average Joe's PC have SQL Server pre-installed? If not, I suppose I can provide them with a link to download it for free?
Is there any better alternatives to Access / SQL Server?
You can use SQL Server CE and bundle the database with your application.
See this How to on MSDN.
You haven't really given enough information to answer this specifically but I'll answer generally:
Does the average Joe's PC have SQL Server pre-installed?
No.
If not, I suppose I can provide them with a link to download it for free?
Yes, Microsoft has fairly generous 'free' versions of SQL server Express for small database sizes (<1GB) and small numbers of CPU's (1). Check here.
Are there any better alternatives to Access / SQL Server?
It depends on your app, your skill and how you define better.
If you are running sql-server you can very easily use linq2sql and have strongly typed data base objects that offer clean vb.net code. The linq technologies are worth learning IMO. The tools in VS2010 work well with sql-server databases. Other more modern Microsoft tools are available too that integrate very easily (entity framework and lightswitch (which I don't have experience with)).
For small local databases sqlite works well. If your project is very small and the sql is simple this is a very light weight solution. This is very small and very fast and is used everywhere.
If a server is needed and low cost matters mysqlis a solid open source server though it is now under private ownership.
Again depending upon your application off-site hosting of a database might be a viable solution. I have a client that is still running their db in the cloud with a low cost 2008 SQL Server provider.
I Want Implement a Software by C#.net.I want Use a DataBase Manager Software like Access or SqlLite or etc.My Program Saved Many Data in Local Machine.
I Do Not Want Publish or Move Data to Other Pcs
What DataBase Manager Software Must be Choose?
Not Different DataBase is Free or have a price.
what is the Best DataBase Manager Software to Save many Data in Local Machine?
For sure you are looking for a free database so for that you can use many databases like mysql ,postgresql , and sql server msde or access
but we still have other scenario, if you are going to distribute this application to other pcs so you have to think about deployment and in this case you can eliminate the mysql , postgresql because they depend on servers but msde (it's also server ) is much easier and you can found alot of tutorials how to deploy it with your project
It depends on how much you are expert in database and for what reason you are using it? are you going to need complex queries or it just a storage place for the data ?
if it's complex query i will go for msde for sql server if it's only for saving information may be i will go for access or even xml
Well if you are developing in C# consider using the MSSql Compact Edition. This allows you to create a local database and use it much like SqlLight. However, the support is much better, especially when you using Visual Studio. There you can find it as LocalDatabase under Data when you adding a new item. (Not 100% sure whether it is present on all versions of VS though).
Firefox has an SQLite Manager add-on.
I think the best choice depends on your needs, for example if you must synchronize data with sql server for me the best choise was sql express.
I would vote for SQL Express. You get essentially a scaled down SQL Server that is capable of working with quite a bit of data. SQL Express plays well with Visual Studio and you will be able to take advantage of the System.Data.SqlClient and related namespaces which come with the .NET framework out of the box. They are also better than the Odbc namespaces. Finally, there is a LOT of online support for SQL Express and, as far as I know, SQL Express's flavor of SQL (T-SQL) is the same as that of SQL Server. So should you one day need the flexibility of running with either or (local database, or server database) you will have it. Also, SQL Express is fairly commonly used in the microsoft world so you should be able to find lots of examples, if need by.
TurboDB for .NET from dataweb is a good solution, if you want a powerful engine with stored procedures and professional support from the manufacturer:
http://www.dataweb.de/en/products/dotnet_database.html
I have been working on VB6 database desktop programming, but now a client is asking for a
simple web interface (some inserts into SQL Server db used by a desktop application).
The question is: Which approach is better?
1)creating asp.net project, connected directly to the SQL Server database;
2)creating separate (simple) mysql database managed by php and synchronization (in 15 minutes for example)
Thanks.
Personally since you already have the SQL Server database, I see no reason whatsoever to add the complexity of another database and then synchonization. The first alternative is simpler to create and can be secure if you design it correctly. The issue about hosting is irrelevant since you are going to your own database that already exists, so is the issue about cost since the databse is already there. Further since you are already supporting SQL Server, you may be able to reuse some code rather than write new code (mysql's version of SQL is not the same as SQl Server's version). Synching the two databases may be more complex than you think (differnt data types, etc.) and the data in the real database is not real-time whereas with the first alternative it is.
I'd prefer the separate database approach.
It's more secure.
PHP/Mysql hosting is widespread
You can pretty much achieve anything with the technologies available, it just depends on your skill and productivity with specific technologies and the availability of online help. Plus Microsoft stuff you tend to have to pay for whereas PHP/MySQL is totally free.
We don't need multiuser. Just relational. Our app currently uses Access but Access isn't exactly zero-administration because it's prone to corruption.
Is SQLite rock, rock solid, pure zero-administration?
Or...is there a way to configure SQL Server as a desktop engine so that it is pure zero admin?
Or...is there some other relational choice?
We are using ADO as the layer to talk to Access, so switching to SQL Server wouldn't be hard, but my understanding is that I couldn't use ADO for SQLite, so switching to SQLite would require a lot of rewriting. Is that right?
Other databases may be more stable than Access, but I'm not aware of anything that's as easy to use, and as easy for an end user to understand. Access (like SourceSafe) is always called "prone to corruption", but few and far between are the first-hand accounts of this. Most people "read it somewhere."
Consider just including a backup routine with your app that keeps the last two or three copies of the Access database if you're that worried about corruption.
If you insist on something else, then try SQL Server Compact Edition (as other have suggested), which (like Access) is just a file, a .sdf file in this case, and a few DLLs. Unlike SQL Server Express Edition, SQL Server CE doesn't leave a background process running all the time.
Another option is embedded Firebird.
The most easy switch would be to go with SQL Server compact edition, it can be embedded in your app, and from some light testing that I have done, it works really well.
Going to SQL lite will require more modification of the DAL.
NOW note that SQL Compact Edition doesn't support stored procedures! (Shouldn't be a big deal, but be sure to research the differences)
There are ADO.NET wrappers for SQLite, not sure if that is what you want or just straight ADO. I have found SQLite to be very robust although you do need to VACUUM the database every now and then to recover unused space after deletions. You can do that from your code, so that isn't really administration. I just do it at startup or shutdown.
I agree with the others' opinions about SQL Express Edition. I use it for several apps.
If you are working with .NET, then you might want to look at Subsonic for your data access. It supports all of the above and more and makes switching fairly painless. For single user database apps, it is great. If you are going to do a rewrite, then it is worth it.
Since you are looking at no need for multiuser, you might want to check out SQL Server Compact Edition. http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx