C# - SQL Server - Refreshing Cached DataTable With Only Records That Have Changed
Jan 20, 2010
I have a large DataTable cached in my web app that is the result of a complex query that returns a large data set. Whilst this data table is cached the query that runs to "refresh" this cache still takes a long time, largely due to the sheer amount of data being returned. In order to speed this up I am considering implementing a timestamp type approach to my tables in order to limit my query to only return rows which have changed.
I then intend to merge this smaller dataset with my cached datatable. Has anyone done anything similar to this, or is there anything out there that handles this already? I feel this could be a re-inventing the wheel situation if I dive straight in.
Lets say you have a page with headers that tell the browser not to cache.Also, this page has already been posted back to itself.Now you hit the refresh button and you click cancel on the IE modal box with the "previously submitted..." message.You get "Webpage has expired". This doesn't happen in FF or Chrome.Is there a way to prevent the "Webpage has expired" message in IE?Since the page isn't cached, I guess IE has nothing to render.But if the page isn't cached and FF and Chrome shows it, I guess they just show the page as previously shown?
im trying to copying specific record from one datatable to another datatable i used below code
public System.Data.DataTable selectspecificdatarow(System.Data.DataTable dtg, int count, int startindex) { System.Data.DataTable dtn = dtg.Clone(); for (int i =startindex; i < count; i++)
[Code]....
its taking too long time in cloneing is there any better way to do this task which is Time effecent
I have two datatables, I want to get all records which are in one datatable but all matching records which exist in another datatable should not be available.
In terms of set, you can say that record which are in 1st datatable but not in 2nd DataTable.
For our ASP.NET project for school we had to build a sport event management web application.
We provide the application in three languages (English, Dutch & French) which you can switch all the time. This has worked all the time for all users, well that's what we think anyway.
Yesterday I found out that switching from one to another language isn't working for 2 of our users. So I started testing a bit and I always got this error.
I'll try to explain what happens behind the doors when changing the language:
First of all the current language is saved in a session so we don't have to check the user row every time a page loads. Besides that we save the language in the users row in the database.
I am using untyped database bind to gridview in an edit form. Now user makes some changes to that datatable (update, delete, insert). How do I detect which rows he changes and which rows he deleted (so I drop them from DB). I know it can be done easily via table adapters but I am supporting a previously built app using untyped datatables/datasets.
Existing records can be updatedNew records can be insertedAll existing records can be deleted & new ones can be insertedExisting records have a primary key field New ones are just blank inserts
All this detail is stored in a data table. On form update I only want to update existing (only modified rows) & insert new rows. I have gone about loading the changed records in a new data table
I have repeater control on page which bind with sql data source.i have dropdown to filter the records of repeater on button click event it refresh complete page i just want to show a wait message to user and just refresh repeater data instead of complete page refresh.i do not want to use ajax update panel.
I have a requirement where a user logs on to a server where exists a website. The user bring up the site on a browser on that server and loads a power point presentation slide. At that time, users using their laptop clicks on the link to that site and sees that particular PPT slide loaded on the server. Then the operator/user on the server clicks on the second slide and the laptop would now see the second slide. Is this possible to do? If yes, then what technology to use? DHTML? or something else.
I am using C# + VSTS 2008 + .Net + ASP.Net + IIS 7.0 + ADO.Net + SQL Server 2008. I have a ADO.Net datatable object, and I want to filter out duplicate/similar records (in my specific rule to judge whether records are duplicate/similar -- if record/row has the same value for a string column, I will treat them as duplicate/similar records), and only keep one of such duplicate/similar records.
The output needs to be a datatable, may output the same datatable object if filter operation could be operated on the same datatable object.
i have a dataTable, which contains a column which has 100 rows, now i want to add those rows in ArrayList, but not with the Add Method, because i have to use for loop for adding records one by one, so i want to prefer addrange method of arraylist, so it is possible to add records in arraylist from DataTable using AddRange.
Below is the code which i am using.
Dim adapGetImages As New SqlDataAdapter("select distinct FileName from Files where Filename<>'' and (RIGHT(FileName,3) = 'gif' or RIGHT(FileName,3) = 'jpg' or RIGHT(FileName,3) = 'bmp') order by FileName", connection) Dim dtGetImages As New DataTable() adapGetImages.Fill(dtGetImages) ArrayList1.AddRange(dtGetImages.Rows[0][0].ToString())
The last line is where i am stuck. as if i run this it will just add single row, and if i say dtGetImages.Rows.ToString() then this will just Add System.DataRow in Arraylist and not its content.
I have an ASP.NET project which is a front-end to a database. In addition to the large tables, the DB contains a few small tables to normalize the larger tables with common values. I have a VB.NET project which loads the smaller tables into memory, using "Shared" (i.e., "static" in C#) member variables, and uses them. I have a call to load the tables in Global.asax - Application_Start. This works for a while. That is, Application_Start runs when I first run my project, loads the cached values, and will correctly keep them in memory for a while.
What I'm seeing (when running my project via Visual Studio 2008 Debugger, hosted locally) is:
A) The Application_Start code will run more than once. Not in a row, but after the user has navigated to some other pages, I'll see (my breakpoint in) another call to initialize the cache, coming form Application_Start. Is it expected?
B) The "Shared" variable that was set to True when the cache was initialized is now False again (which should only happen when the class is first loaded). Similarly, all the data that was chached is no longer present. That is, it looks like VB is unloading all the Shared members. Is this expected?
If these are the expected behaviors, is there a way to do what I want? The code is in a module that is also used by other (non-ASP.NET) projects, and seems to work correctly for them. I'd rather not have to duplicate this functionality for something specific to ASP.NET, but would like to know what my options are.
MembershipUser m_user = Membership.GetUser(); DataTable dt = new DataTable(); dt.Columns.Add("SenderUser"); dt.Columns.Add("RcvUser"); dt.Columns.Add("Message"); foreach (ListItem li in lst_Users.Items) {
[Code] ....
I am calling "Application object" from above aspx page into web service page as below:
[WebMethod(EnableSession = true)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string WebMessage() { List<string> list = new List<string>(); DataTable dt = ((DataTable)HttpContext.Current.Application["Message"]);
[Code] ....
I want to know that the approach im using in Web service page to fetch top 5 messages from Datatable is correct or not? How to do that without using LINQ as I am using framework 2.0 ...
The website is over half way done and the functionality for the blog is (except for adding posts) is already implemented and working correctlyI have a SQLExpress 2008 backendBlog posts are rendered on the page with full HTML markup within a label control.
All of the above is done and working. Though I am essentially new to creating websites with ASP.NET, CSS and SQL, I am sure that I could simply carry on and make a login page with some controls that would allow me to add records (blog posts) directly to the database on the host server. However, I am fearful of doing this because I know that malicious code can be passed in this way. Also, because of my lack of knowledge, the only way that I know of to pass the code from a control to the database is to disable validation for the page the control is on. Without a doubt I do not want to do that.
So what are my options for getting blog posts into the database? Is it safest for me to fully create the post in html and update a copy of the database that resides on my local machine? If I do it this way, how can I merge the records from the database on the local machine with the records on the remote server?
the problem in a nutshell:running plink(with specific arguments) works from cmd, but not from asp.net
the command being executed:"C:Program Files (x86)PuTTYplink.exe" -batch abc@xyz ./fake_email.sh from cmd, the command executes correctly,with fake_email.sh returning "0". from asp.net i get the following error: The server's host key is not cached in the registry.You have no guarantee that the server is the computer you think it is.The server's rsa2 key fingerprint is:
ssh-rsa 2048 sequence Connection abandoned.i think it has something to do with the user(which .net uses to start a process) not being able to "see" the key which pageant is making available.i am running cmd as administrator.
I am new to asp.net.I am buliding an online shopping application.Could anyone tell me the steps to edit records in gridview which have its datasource i.e. datatable.Means the shopping cart wil display its products.i want to do editing in gridview say quantity or product which automatically edit records(quantity) in datatable and then gridview wil again get bind to new edited datatable and able to show edited records say edited quantity of taht product.
I have used a external js file for a upload operation in my page.. once the file get loaded in temporary folder, it gets loaded from there even if new changes are made the old version that exist in temp folder gets loaded... i have writtenResponse.Cache.SetCacheability(HttpCacheability.NoCache); on my page But it still loads the js file in cache. When i cleared the temporary files manually it works fine...But i cannot ask my client to clear temp folder,,,Is there any solution to load js file not from the cache, ie reload every time page is loaded...
Does dataset store all its datatables' records into server memory if I just call one datatable from it?Lets make an example, a dataset with three datatables - tbCompany, tbCompanyStaffs, tbSalesOrderwhere tbCompany is the parent of tbCompanyStaffs. tbSalesOrder is an independant table.Does dataset load all tbCompanyStaffs records into the server memory as well when a class retrive data from tbCompany?
I'm currently developing a website using VS2010 Express/SQL Express 2008, and am using the applications development server to test.
I have created an access layer which effectively takes all my cachable data and creates datasets.
I've also created a system wheras for each dataset, For each dataset I also create a token cached object (a string), which is set to expire before the dataset. The theory behind this is that when my token expires and is removed from cache, it calls a routine to rebuild the dataset, and re-caches the new result, then creates a new token. Think of it as a poor mans SQL dependency.
What this allows me to do is rebuild datasets behind the scenes with little interruption/delay throughout the day. It all works great - for instance when a user updates a table containing 100,000+ records on the site, the dataset rebuilds at hourly intervals reworking and consolidating the data in the background before representing it in a smaller cachable form.
What I would like to know is this. If I was to replace the database during the usable day (only updating the tables that users don't update), lets say adding 50 new records, would it cause the cache to be dropped. The reason I ask is because it the cache remains until its exipry time, I can replace the database and rebuild datasets incorporating new data in the background when the token expires. If the cache is dropped when I update the database, it will mean interuption whilst I reload the datasets and will change my strategy on uploading new data.
I ask the question because I'm currently working on the development server and unable to test in a live server environment at present.
I know how to use UpdatePanels and so on but I would like to know if its possible to run method on the server (after clicking a button) which doesnt change anything in controls on the site but for example updates database.
I know that I can use WebService but is there any way to use simple code behind methods ?