Database for an Inventory System in C# [closed] - c#

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I'm upgrading an inventory system for a jewllery store that was originally built with MS Access. The application stores items, customers, vendors, and displays data about items stored. Reporting tool should be considered to generate reports for items in a printable format.
The system should be built in C#, but I've not made the decision yet for the database engine I should use for this application. What do you suggest?. I thought of SQLite, but I need to keep in mind that migration items from the old database to the new updated one is a must. And since it was originally built with MS Access. Should I just stick with MS Access and build my application with it?.
Edit: This is a single user system.

SQL Server Express is a good choice if you want to stick with MS Technologies. Since your conversion is going to be one off, you can make it in various ways - either looking up for a DB Conversion tool (seems like there are some of them around), or even write your own, using either DTS, SSIS or handcrafted code, if you need to.

For single-user desktop apps in a Microsoft ecosystem, consider SQL Server Compact Edition rather than the full-fledged server product. Here's the relevant part of Microsoft's overview:
Microsoft SQL Server 2005 Compact
Edition (SQL Server Compact Edition)
is designed for developers who need
light weight, in process relational
database solution for their
applications that can be developed and
deployed on desktop as well as on
mobile devices. SQL Server Compact
Edition Runtime can be used to develop
and deploy applications on desktop.
SQL Server Compact Edition is a
powerful, yet lightweight relational
database engine that makes it easy to
develop desktop applications by
supporting familiar Structured Query
Language (SQL) syntax and providing a
development model and API consistent
with SQL Server.
Some of its limitations (no nested transactions, for example) are described in its Wikipedia article and comparisons to other embedded databases abound (as far as I can tell, there isn't a consensus about a best option).
There's at least one SO question addressing migration from Access and a poster here links to a list of SQL Server CE tools, including various kinds of migration software.

since you're using C#, Sql Server would seem to be a logical candidate; MySql is also a good choice.
I would not consider using MS-Access or SqlLite in a production application; too many drawbacks/limitations - see all this stuff for examples.

This decision depends on many factors. Like how many concurrent users will be accessing this application (Access does not allow more than 5).
How big is the database?
How much growth do you expect?
What features do you need besides basic data storage?
What is the budget?
The answers to these questions will help you to select the right product. There are many different ones out there. So far i've been very pleased with SQL server and MySQL (which is free). I'd steer clear of Oracle though I found it it be a hassle to work with and generally a heap of junk.
[Edit]
Based on your last comment I would go with SQL Server Express with advanced services http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=b448b0d0-ee79-48f6-b50a-7c4f028c2e3d. This product is still free. The only limitation is the database can't be larger than 4 gigabytes or something like that. I hope this helps.

Take a look at PostgreSQL, http://www.postgresql.org/
It's free, fast and has providers for .NET

Sql Server, then you can add reporting services, and the migration path from access should be easy. You could even start with the Express edition.

Related

how can I save and load information in a desktop inventory application C#? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
Improve this question
Im developing this desktop app for study reasons
but im using SQL Server for database management so reading around the web i find some articles on this and why it is bad practice, i cannot move my entire project to another PC without installing SQL Server. then i find this:
Save and load inventory
So i don't know what method of saving and loading information I need for this project, I think in SQL Lite or maybe I can use a simple file to save all the information like the mentioned post.
Im using a DB with relationships and i dont know if i can made it with a data persistence file. What should I do? what is the best practice?
PD: Sorry for my bad english
Usually your SQL Server would be hosted on a remote computer when used outside development, but it depends on exactly what your application is supposed to do.
If it's a requirement for you to be able to switch computers, and not host your database on a remote server, I'd say using SQLite is a good choice.
Alternatively, you could have 1 big file that has all your data instead of a relational database, although I wouldn't really recommend it. It's good for quick prototyping of things, but all your data would be denormalized, which can end up being more effort to work with than SQL. This is what the inventory example you linked does.
If you are planing to move your application on different computers and don't want to install any database management system there then SQLite is the best option.
All of your data will be stored in one file and you can freely move your application an other PC without installing any database management system there.
Here is good article explaining that in which scenarios SQLite is good choice.

Best way to store PC application data localy and sync with server database [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
Please, i have a question.
What is optimal way to store some settings and application data like tables or products info of my application localy. That means, data of my program is store on computer where application running.
But, If I want to use or work on this app on other computer it is problem because there aren´t same settings and data. So, I want to work on this app locally on my computer without internet. But, i want to synchoronizing tables and data with other computer if i want to.
I want to develop my personal application on desktop computer. It is like economical applicaton where are lots of products and peoples tables. I choose VS2015 C#.
Thank you very much for any reply.
One way that’s very popular right now is to use SQLite, which leverages the power of sql while being easily contained within your local file system. It’s a popular option used in both desktop and mobile applications currently.
https://www.sqlite.org/index.html - Project site
https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki - ADO.net providers.
Another option is to simply serialize collections of objects and write them to a file. You can then use LINQ (Language Integrated Query), to manage and select the data within your application as desired. However, SQLite would be my first choice.
I would also suggest upgrading to visual studio 2019 unless there are limitations within your system that prevent it. VS2019 is more widely supported by the latest library’s and 3rd party solutions. Many of the newer versions of DotNet, like DotNet Core, will not be supported in VS2015 (Though .net core 2.0 is supported in the 2017 version).

Extending application to use on LAN [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am not a very experienced programmer. And I am facing technical issues in database servers.
I have developed a small standalone C# Application which is already in use.
It uses SQLite database. The database usage is not very heavy. Only a few form needs to be read and write to the database.
Now there is a requirement that it should be used on LAN.
I know that SQLite is not a good database option for client/server.
But keeping these points in mind should I change the database or not..
The application is already using SQLite and this is not a project from start.
The database usage is not very heavy. Only a few forms will be filled and data is written on the database.
At most 1-4 Pc's will be using the application simultaneously.
I had tried to install MS SQL server on my customers PC but then I am facing so many technical issues and it is taking a lot of time.
So I am thinking to stick with SQLite only.
Any suggestions will be greatly appreciated.
So is your question "Can I share a SQLite database between multiple workstations", or "How to install SQL Server"?
I'd say go with the last. SQLite even promotes the use of a client-server DMBS if you require multiple processes accessing the same database.
Installing MS SQL server can be pain; you have to ensure .NET framework is installed, windows service pack is installed and MSI has correct version. Still I would prefer going that way, because of robustness and reliability it promotes and rather write some robust installer to "make it happen".
You can of course, keep your current solution and write web service that will lock access to database to one-client & one-query at time only and rewrite your app to use this service instead of accessing db directly.
Btw. - Microsoft SQL Server Compact Edition is working similar to SQLLite (in the terms ease of install), and it allows multiple connection to the same database (.sdf file)
http://technet.microsoft.com/en-us/library/bb380177%28SQL.90%29.aspx

Which of SQL Server Express, IBM DB2 Express, Oracle XE should be used? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I'm looking for a free high-quality database server for a C# application to be deployed in small business environments where the number of workstations will be between 2 and 20. In many cases there will be no dedicated server which means that the database server will need to be installed on one of the workstations.
Which of the above free database servers would be most suitable for my needs?
I am leaning towards SQL Server Express because it probably has more support and free updates etc and is probably better suited to programming in C#.
I would go for SQL Server Express, mainly because it is a Microsoft solution and will work well with other Microsoft products.
I've not got a lot of experience with Oracle solutions, but to my knowledge the only time you'd choose to use Oracle is when you specifically need to use the functionality provided with Oracle.
If you're dipping your toes in you could always go with SQLite.
If you use Microsoft technologies like .NET, other Microsoft technologies like MS SQL Server are of course those with the best integration.
In many cases there will be no dedicated server which means that the
database server will need to be installed on one of the workstations.
Why you don't use a file based SQL "server", like SQLite? Or a few XML files together with LINQ to XML? These alternatives were both very powerfull and do not require additional licenses.
EDIT:
Problem with wifi you mentioned should never occur because the database file is stored on the local machine. If you accessed a single database file over network from multiple clients, you should definitely use a real SQL server.
For databases to be deployed to small businesses and with 2-20 users, I would go with SQL any time.
I've worked extensively with both, SQL server will get the job done in a fraction of the effort, it just works. Cleint tools are so much better compared to Oracle's.
Oracle will force you to tweak all kinds of technical knobs and dials to work, things I never had to touch or even think about with SQL server. If you don't set them, Oracle will not work well. If you set them wrong, Oracle defenitely not work well. Right now I'm forced to work with Oracle at my work and I've actually just installed SQL 2012 RC0 on my own workstation just so I can run some basic queries in a reasonble amount of time. A team of DBA's are unable to get the wretched thing to perform. I'll stop here, I'm getting all worked up again.
Also small businesses are likely to have windows domains, so you can use Integrated Security (out of the box).
Complete no-brainer, go with SQL Server Express. I envy you.
Gert-Jan
SQL Server Express is a microsoft product and thereby directly supported by Visual Studio. You can never get it wrong when using microsofts products together.
You could use Microsoft SQL Server Compact 4.0. It acts just like SQL server and allows you to have the database on the same work station.
Check it out here
I would go with one of the Microsoft Databases as support for connectivity comes pretty easily through the .NET framework (note that MS have deprecated their own Oracle .NET Data Provider). Yes you can get a third-party library but if you go with a MS database then it's built into the framework and you can avoid a dependency on an external librray.
So, SQL Server Express Edition would be my preferred choice, but beware that there are size restrictions on the amount of data you can put into a database (4GB if I remember correctly) - normally enough for small applications but something to be mindful of.

Looking for an open-source or low cost dev license survey / form builder application in C# or VB.NET [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I am looking either a low-cost (under 500$) developer license, or open-source survey / form generator tool. It has to be written in C# or VB.NET. These are the core features I need:
Ability to generate surveys with a list of questions on the fly
Multiple answer choices (freeform text, radiobutton, etc)
Users can fill out survey online
Results are emailed to an address, or saved to a database, or both
Bonus: Logic-based question skipping (ex: if you answered yes to 15, ask why)
Thanks in advance. Also if you have any insight at all to solutions in other languages, I would be interested. I know I could write my own version of this but I would love to hack someoene elses together instead.
Perhaps a pre-built solution will suffice and save you from having to do any programming at all?
For example, SurveyMonkey
NOTE: This will not answer your question directly (i.e. a full suite of tools available purely in C# or VB.NET), but it's a possible alternative that may suit your needs if your client has the resources available.
You may consider using Windows SharePoint Services (soon to be called SharePoint Foundation in 2010) as a platform for building and delivering surveys. SharePoint has rich survey functionality built-in, and with the ability to create custom web-parts using Visual Studio, you should be able to acheive your logic-based goal.
Regarding your core requirements:
Ability to generate surveys with a list of questions on the fly
You can decide who is allowed to create surveys and how they are presented internally to users. You can choose lots of options, such as whether their answers are submitted publicly or anonymously.
Multiple answer choices (freeform text, radiobutton, etc)
SharePoint has several answer type choices available.
Users can fill out survey online
By default, SharePoint is "online." However, it's best suited for a corporate intranet, though it can certainly be exposed as an extranet website as well.
Results are emailed to an address, or saved to a database, or both
A SharePoint user can be set up to be alerted every time a survey is filled out.
You can create custom alerts that hide/show what fields are in the alert message.
The database entries are stored in a list, which you can open in Excel or Microsoft Access. I believe you can access this data programmatically as well, but you might need MOSS to access it via straight MS SQL.
Bonus: Logic-based question skipping (ex: if you answered yes to 15, ask why)
I can't remember if logic is built-in out-of-the-box, but you should be able to create a logic-based survey using SharePoint Designer or Visual Studio.
A quick note on the difference between Windows Sharepoint Services (WSS) and Microsoft Office SharePoint Server 2007 (MOSS):
WSS is the "lightweight" version of SharePoint, but still offers most of its functionality.
WSS 3.0 comes free with Windows Server 2008 and can be set up free with Windows Server 2003.
If your client already has a Windows Server installation, SharePoint can be a great option since it integrates tightly with active directory.
I've used the survey feature in WSS on an external installation of WSS to do an internal survey of our sales team, and it was great. I used MS Access to query the data after it was done and present a clearn report to management.
MOSS is the big enterprise offering for SharePoint.
MOSS is targeted more towards big enterprise customers and is most likely unnecessary for the type of form or survey you are trying to build.
However, if you're working with a big client, they may already have MOSS installed.
Try the Survey Project at http://www.surveyproject.info for a free open source survey and form engine framework written in ASP.NET and C#.
Downloads and sources at http://survey.codeplex.com
A demosite is available as well.

Categories