Simple Results Database and live Graphical Displaying

Peter D

Peter D

Nov 3 2009 10:11 PM
Hello all, I am a Visual Studio beginner and have kind of been thrown into the thick of a project, here is a quick summary of my question:

I am working with a Visual C# .NET application and I need to add the ability to record live, event based, results to some kind of database. At the same time, I need to be able to display, say, the last 20 archived results in some kind of line graph, perhaps updated at the end of the event that delivers the results to my application.

I have the following constraints:
- I need to use Visual Studio .NET Express for C# 2008
- I have no budget for fancy databases/graphing software, or access to any remote servers
- I have no budget for MS Access (which would have been my ideal database...)
- I need to be able to access the database via query tools (report generators) while the application feeding data into the database is running

Now, I have done a good deal of research to explore my database options, and it seems that my only option is something called SQLite, and I've been experimenting with it. My only fear is that it only allows for one simultaneous connection. I worry that if I try to update my graphs within my base application while an event is trying to update the database (or someone is polling the database with a report query) I'd be dead in the water.

On the graphing front, I am finding myself using something called ZedGraph. My only gripe is that I can't seem to find a good way to load rolling data sets (first in first out, with a set of 20) into it, everything gets very clumsy very fast, and I imagine there must be a better way that I have not stumbled upon yet. Perhaps something that can feed directly off of a database rather than doing a query, parsing the data, then feeding it into a ZedGraph module.

Can anyone recommend some free tools I can use to get me off on the right foot?
Perhaps a tutorial out there I can follow along with?
Is it likely that I will need to figure out how to utilize multiple threads in order to have this work properly?
(As events need to be recorded to the database as they come in, I can't be waiting for the database to free up access rights and risk missing an event.)


Answers (1)