|
|
||||||
|
#1
|
|
|
|
|
I can't seem to find where to reset the parameter list.
Dim objCmd as New SqlCommand(CommandText,objConn) with objCmd.Parameters .Add("@StateCode",SqlDbType.Char,2).value = ByState.SelectedValue .Add("@City",SqlDbType.char).value = ByCity.SelectedValue end with objConn.Open() ZipCode.DataSource=objCmd.ExecuteReader ZipCode.DataTextField= "ZipCode" ZipCode.DataValueField="ZipCode" ZipCode.databind() Now I want to use the same SqlCommand object and the same data connection to do another select. How do I clear the old parameters to allow me to readd the new ones and do I need to do an objConn.close and another objConn.Open to do this? Thanks, Tom |
|
|
|
#2
|
|
|
|
|
To clear the parameters, use this syntax:
objCmd.Parameters.Clear() Yes, you should always close the connection as soon as you can after executing a query, and don't open a connection until just before you execute a query. The built-in ADO.NET connection pooling makes this very efficient in almost all circumstances. |
|
#3
|
|
|
|
|
"Steve C. Orr [MVP, MCSD]" <Steve> wrote in message
news:a796 > To clear the parameters, use this syntax: > objCmd.Parameters.Clear() That was what I was looking for here. > > Yes, you should always close the connection as soon as you can after > executing a query, and don't open a connection until just before you > execute a query. The built-in ADO.NET connection pooling makes this very > efficient in almost all circumstances. What if I am doing a 3 or 4 selects in a row to fill dropdowns or a datagrid - one right after another? If I am doing a datareader, I have to wait until I am done reading it before I can close it, so wouldn't be better to just do something like: ************************************************** ***************************************** Dim objCmd as New SqlCommand(CommandText,objConn) with objCmd.Parameters .Add("@StateCode",SqlDbType.Char,2).value = ByState.SelectedValue .Add("@City",SqlDbType.char).value = ByCity.SelectedValue end with objConn.Open() ZipCode.DataSource=objCmd.ExecuteReader ZipCode.DataTextField= "ZipCode" ZipCode.DataValueField="ZipCode" ZipCode.databind() objCmd.Parameters.Clear() objCmd.CommandText = "Select Counties,CountryCode from Countries where ClientCode = @ClientCode" with objCmd.Parameters .Add("@ClientCode",SqlDbType.VarChar,10).value = ClientCode.Text end with objConn.Open() Countries.DataSource=objCmd.ExecuteReader Countries.databind() ' I assume I would not need to do an objCmd.Parameters.Clear() here, since I am using the same paramter and adding another (although my assumption may be incorrect). objCmd.CommandText = "Select CarrierCodes, CarrierNames from Carrierswhere ClientCode = @ClientCode and State = @StateCode" with objCmd.Parameters .Add("@StateCode",SqlDbType.Char,2).value = StateCode.Text end with objConn.Open() Carriers.DataSource=objCmd.ExecuteReader Carriers.databind() ************************************************** ***********************************' Or should I close and open the connection between each select? Thanks, Tom [..] |
|
#4
|
|
|
|
|
Well, if your code works then it works. Why fix what ain't broken?
Then it just becomes a matter of what is most efficient and how much effort you are willing to put in to squeeze out every last bit of performance. Technically, the performance would be best if you rolled all these queries into a single stored procedure that returns multiple result sets. |
|
#5
|
|
|
|
|
"Steve C. Orr [MVP, MCSD]" <Steve> wrote in message
news:4036 > Well, if your code works then it works. Why fix what ain't broken? > Then it just becomes a matter of what is most efficient and how much > effort you are willing to put in to squeeze out every last bit of > performance. > Technically, the performance would be best if you rolled all these queries > into a single stored procedure that returns multiple result sets. I don't know if this works (I assume it does). I am just trying to find other and better ways to do it. As far as the multiple results sets go, I am not sure yet how to handle the result sets when they get back. Tom [..] |
|
#6
|
|
|
|
|
You can use the DataReader.NextResult method.
Here's more info: http://msdn.microsoft.com/msdnmag/is...T/default.aspx |
|
|
| Similar Threads | |
| How to prevent reuse of a closed connection? Hello Net, We are running Windows Firewall on a Server 2003 SP1 R2 that acts as a web server (204.187.23.155). The following lines could indicate that a https response from... |
|
| code reuse and design reuse Hi all guys, As an embeded programmer with five year C experience, I did read many great books related with design, coding, test,debug,algorithms, compiler, design, os, pm... |
|
| DVWP reuse on a different list Does anyone know if you can use a dataview web part that you created from another list if you just change the list id. I have done it and know it works but have seen some |
|
| Reuse connection to SQL Server? Hello, I have a number of Pass-Through queries to an SQL-Server backed. The ODBC connection string property is set to... |
|
| Reuse Connection for Temp Tables Hello, I have a number of Pass-Through queries to an SQL-Server backed. The ODBC connection string property of Access report is set to the... |
|
|
All times are GMT. The time now is 10:57 AM. | Privacy Policy
|