DataSource Controls :: Using "using" For Connection Management And Preventing Timeouts?
May 14, 2010
I had been using the "regular" System.Data syntax to create connections on web forms, like:
dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("myconnStr").ConnectionString)
dim myCommand as SqlCommand
myCommand = new SqlCommand("my sql statement", conn)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myCommand.Connection.Close()
I say "regular" because most examples I've seen use this syntax, but more recently I've started using:
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("myconnStr").ConnectionString)
dim myCommand as SqlCommand
myCommand = new SqlCommand("my sql statement", conn)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myCommand.Connection.Close()
End Using
...because recently I've seen some examples using this syntax.Even more recently, I've discovered that I'm getting some connection timeouts on a busy website I created a couple years ago. After googling the error, I found a few threads stating that the second example above will provide immediate automatic cleanup of connections, and in looking over the website, I'm using the first syntax exclusively.
My question is, am I creating the problem by not fully tearing down the connections in my code above (merely closing them, but not actually destroying them)? Do I need to do something like "set conn = nothing" like I used to do in VBScript?
And if so, will using the second syntax take care of this problem?
i work with sql database i want to connect to sql server i dont have sql manegment who could i c the connection string the palce of the sql that wen i write these comand sqlconnection con = new sqlconnection("the connection string")
I'm trying to create a sql script that will connect to 1 server, backup 2 dbs, then connect to another server and restore the dbs. know i could create an application easily, use sqlcmd too but I wanted to do it on SQL Server Management Studio. I'm running version 10.0.2531.0
I are building a web application which will be deployed to Windows Azure. I want user to set session timeout value which will be stored in Database. Currently I am aware of Web.Config method to set session timeout. i.e.
Can I still use Session_OnEnd to trap a session timeout? Is there a better way to trap a session timeout? I want to take the user to a page that tells them the session timed out, and give them an opportunity to re-enter the application in a new session if they wish. How can I accomplish this? Is there still a global.asax file in the .NET 4.0 world?
I have an asp.net page that will be doing some processing that may take a very long time to complete. I cannot just set the page timeout value since this is going to be in a hosted environment and the timeout values that I set in my web.config are overridden by the server host. What I'm doing is taking a file from a FileUpload control and doing some web requests to a 3rd party service for each line in the file, all of which may take a very long time to process a large file. I'm talking on the order of, say, 30 minutes, and there's just no way to optimize this any further to cut down on the processing time. Is it possible to even do such a lengthy page request in asp.net? Can someone give me a pointer in the right direction here to make this happen? Is my only hope to create an async page? It seems that doing an async page is the way to go if I have a potential for a lot of lengthy requests, but really this massive of a request is going to happen VERY rarely so this is not an issue of running out of thread pool since most of the time this particular request will be completed relatively quickly, but on occasion it may receive a very large file it will need to process and will take a very long time. So what is the best way to handle that case?I'd also like to update the client with the processing status as the processing is going on. I'm familiar with doing client ajax calls via jQuery to a page webmethod so if there is some clean way to update the client as this long processing
I think it is a problem that SqlCacheDependency may invalidate a cache item while it is being set:
function getCacheItem() if cacheitem is empty cacheitem = something AND AT THIS POINT SqlCacheDependency INVALIDATES THE cacheitem end if return cacheitem end function
how can we prevent this? Is it somehow possible to specify a ReaderWriterLockSlim for the SqlCacheDependecy to use?
In my DAL i have more than 100 methods/Function, each and every method am opening the sqlconnection and closing the connection, this is taking too much of time to establish the connection at every time. So what i expect is one common class will create the SqlConnection that will check if the connection is Broken or Closed then create the connection again else return the connection, how to do this(Also i would like to apply ConnectionPooling).
As you can see, the connectionstring parameter is defined to a specific connection string name and I need to be able to set such a parameter to a different value, for example, to a session variable content.
i am trying to create connection using OLEDB connection in my app. but i am not able to create the connection as in datasource i want to use Server.mappath, but cudn't find the right method to use it. i am trying to make connection with Access database file. following is code i have tried:
string path = Server.MapPath("~/uploadaccess/Production.mdb"); string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("~/uploadaccess/Production.mdb")&";"; and also OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path&";"); and tried this OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("~/uploadaccess/Production.mdb"));
and this is the error i am getting:
Operator '&' cannot be applied to operands of type 'string' and 'string'
i have an asp page through which i want to access FTP server And retrieve data (only file properties )from there and get it in excel (or just display it on the browser)is there any way i can keep it simple and acess the data from the server ???
The attached code, the oledb part, is giving me a blank web page saying it cant connect on my local dev server. I have another app with the same code, in fact I copied it and changed the db names. The one I copied from works fine.
I want to use from two db connection in one linq query
My sample is:
int a=1; if(a==1) DataClasses1DataContext1 db = new DataClasses1DataContext1(); else DataClasses1DataContext2 db = new DataClasses1DataContext2(); var q = from c in db.F_Groups select c;
In this code a=1 so db connection is DataClasses1DataContext1
I want if a=2 then db connection = DataClasses1DataContext2
but this code is error.
db connections is completely same but in two deferent class a db connection is sql and another is oracle
I'm having a problem, which I haven't had with other projects, in setting up membership. I have set up a aspnetdb database using the asp.net confirguration tool. The database is in the app data folder and I can set up users and roles etc from the web site administration tool. However, trying to log in within the application, using the login control I get "Login attempt was not successful".
I have noted the following :-
1. On the home page of the Web site administration tool the application:/ shows no application where as normally it would show the name of the application.
2. Clicking the AspNetSqlProvider test button, I get the error "could not establish a connection to the database"
3. Although various lines have been added to the web config file, no connection string has been created to the aspnetdb file in the app data folder.
4. If you right click on the aspnetdb file within the solution explorer, there is an option of "include in project". Selecting this doesn't however solve the problem.
I am thinking of putting a drop down list to choose a couple of options. Depending on what is selected I want to then specify a specific connection string. I use the ConnectionString="<%$ ConnectionStrings:SomeConnectionString %>" format. How can I handle this in the .aspx page?
This seems like a really silly question, but I've had a search around and I can't find anything about this. I've got a DB connection string that I'm creating in my web.config:-
[Code]....
and
[Code]....
but I need this connection to be read only. I've defined all my linq objects with only gets on their properties, and none of my (MVC) repository classes have .SubmitChanges() methods in them so I'm 99% sure the system can't update this DB, but I would also like to set my DB connection to be RO if at all possible. I realise that ideally this should be done at the SQL server end and the user should be made RO, but that (for various reasons, out of my control) can't be done, so I wanted to lock down my connection as the app mustn't write to the DB.
Is there a "readonly" parameter I can apply to the connection string so that it would throw an error or discard the data if any updates were attempted?
I am using CLR project in my website.I have used bulk insert in there.I am not able to use context connection in the procedure.Is there any way to get the connection string from web.configor from context connection.
I have an app that connects to only one db for all of the data that the app has access to. My connection string is in the Web.Config file. In each of my DAL classes I have the following code that gets the connection string from the Config file. This works with no issues but I thought there might be a better way of doing this that I don't know.
If I wanted to change the name of the connection string that any of the DAL classes would use then I would have to change the name of the connection string in each of the files. I thought about creating a new class that would hold this then I could just instantiate a new instance of the class to access this with each of the DAL classes that needs access to it. Then if I needed to change the name of the connection string then it would only be in one place. I suspect there is an even better way of doing this that i don't know about.