How to get real-time data from SQL Server Compact databases (*.sdf file) using Visual Studio 2010, WinForm, C#.NET, .NET Framework 4.0 to update Controls (Label and DataGridView).
There are some solutions for this problem. On the database side, you can use Event Notifications where you can subscribe to the changes occurring in the database and handle the events. Another would be polling, that is monitoring your database by constantly running queries and checking changes.
you can use longpoll read this site
Long poll for read
Related
This is regarding SQL Server Extended Events feature which got introduced with SQL Server 2008 and got a GUI interface in version 2012. In specific to its so many wonderful features I also read it here that you can also stop the SQL Server when you encounter a specific event during an extended event capture session. I searched a bit about it but I'm unable to get any leads as to how to take any such custom action e.g. stopping the SQL Server based on the occurrence of an event e.g. lock_deadlock.
I went through all the tabs in properties window as shown below after creating the extended event session using new session wizard but I'm unable to get anything like that where I can configure such condition based actions.
It will be really great if someone has used it and can guide me appropriately on this.
Hello In MSSQL #Verison 2008 not supported this Views So some developers make SQL addin,
I prefer extendedeventmanager addin.
Dowland extendedeventmanager
Thanks
We have an firebird database connected to our access control system and then a separate web app that I developed for our time and attendance using sql server 2005 as the data source.
I wanted to use entity framework to connect to the firebird database to access data like users, transactions, sites, etc. As this method is very complicated getting the connection using firebird .NET provider the other option I have is creating a sort of replication (Mirror) from the firebird database to sql server.
I have done this with a DTS previously (Selecting the data and then inserting it) and it worked fine but had many manual processes involved in getting the data and updates made it difficult.
Is there a simpler way to do this or any suggestions would be appreciated.
Unfortunately you need to track what to replicate at the data level. If you are only pushing it to the MS SQL database you could use a modified timestamp, or a record version field (create a generator, set a trigger to update the version field upon update) to reduce what you select. Another popular option is to update a field to current_transaction, but if you do a restore you will start counting from 0.
If you are sending data both ways it gets more complicated -- you need to have conflict resolution. You could look at something like the Microsoft Sync Framework which can use the methods above.
Presently I have a Windows Forms application that obtains data from a SQL Server database on a separate server in our LAN. Basically we want to re-use as much as possible our source code that interacts with the SQL Server database and change the forms portion to a thin client silverlight solution. The problem is that our Windows Forms application is a fat client application; however, our company recently added employees working several thousand miles away, so they have a long delay in working with our application as it retrieves data from the database server which is a long ways away from the employee's client forms application.
The ideal solution for me would allow the developer to display data based on various database tables or views dynamically at runtime say based on what treeview item a user clicks and not having to hard code the database schema at design time. This is the way our windows forms application presently works.
One aspect of silverlight I am wrestling with right now is that if you want to access data from a SQL Server database on the web server side you have to use web services or WCF RIA, which of course involves creating a design time EDMX file or generating LINQ to SQL classes. The problem is that our database schema changes quite frequently, so that means I would have to keep manually re-updating the web services along with the EDMX and/or LINQ to SQL. What I would really like to do would be to just connect to the SQL Server database using ADO.NET to populate the various silverlight datagrids without having to deal with web services. Please note that I am pretty new to Silverlight, so perhaps I am missing something obvious.
Here is one of the many links I have checked as I've been working on this solution; however, this just migrates a Windows Forms application that already has a web service to a silverlight application that has a similar web service, so it doesn't seem to apply to my situation:
http://www.silverlight.net/learn/advanced-techniques/moving-from-windows-forms/migrating-a-windows-forms-application-to-silverlight
Here is another website that I have been looking at closely; however, the database that I am working with is so huge and has such a large schema that whenever I attempt to open or work with the Data->Show Data Sources or Data->Add Data Source window in Visual Studio it takes about an hour of the CPU running at full throttle before it displays the values in visual studio. Of course this makes Visual Studio almost unusable if this hour long wait happens every time I try to make a change in the silverlight XAML designer:
http://msdn.microsoft.com/en-us/gg315272
Also, the website example above is not an acceptable solution because we want the web server and the database server to be two separate machines, so we would not be able to put the database into the App_Data folder in the silverlight solution.
If anyone has any suggestions or guidance in terms of migrating this application, they would be most appreciated. TIA.
Roger
Basically I found out that since I'm used to writing desktop applications that communicate directly with a database (such as SQL Server), I was surprised to find that there is no object in Silverlight to enable you to do (SqlConnection, OdbcConnection, etc.). This is because Silverlight is a client platform, designed to be run from within a browser anywhere in the world, and so it does not make sense for it to be able to access databases directly because databases are generally hidden behind a firewall. The purpose of a service is to provide an interface for exposing data publicly from the server, acting as a conduit between the data in the database and external applications. (source: "Pro Business Applications with Silverlight 5" by Chris Anderson)
Please note that I also had made a mistake when I created a DomainService and assigned to it all the tables, queries, and stored procedures in the entire database, when in fact one needs to create a separate domain service for each individual table or query. This explains why I had the problem before where I had to wait about an hour for the Data Sources window to populate.
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.
Is there a relatively simple way that my VB.NET application can be notified of the fact that a new value has been written to a table in SQL Server Express 2008? Polling is not an option since I'd need to do that every 10 seconds nonstop.
Take a look at having your application subscribe to Query Notifications.
Also Using Query Notifications in .NET 2.0 to handle ad-hoc data refreshes