SOS!! Proc written in C# throwing errors !!
I have a stored proc which is being called by reporting services. It is written in C# and is a wrapper for executing other procs dynamically.It generates the following error time and again. Any help would be hugely appreciated as this is a production level issue.
Thanks
Shai
Error Message:System.InvalidOperationException: The context connection is already in use.
System.InvalidOperationException: at System.Data.SqlClient.SqlConnectionFactory.GetContextConnection(SqlConnectionString options, Object providerInfo, DbConnection owningConnection) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at StoredProcedures.USP_GenerateReport(String procname, String parameters) .
The Code
public
staticvoid USP_GenerateReport(string procname,string parameters)
{
string[] parameterarray;
string parametername ="", parametervalue ="", separator =",";
//Create a connection in context of the calling app
SqlConnection objConn =newSqlConnection("Context connection= true");objConn.Open();
try{
//Create command objectSqlCommand objCmd =newSqlCommand(procname, objConn);objCmd.CommandType =
CommandType.StoredProcedure;//Find the parameters for the target proc and add valuesparameterarray = parameters.Split(separator.ToCharArray());
for (int i = 0; i <= parameterarray.Length - 1; i++){
parametername = parameterarray
.Substring(0, parameterarray
.IndexOf(
"="));parametervalue = parameterarray
.Substring(parameterarray
.IndexOf(
"=") + 1, parameterarray
.Length - parameterarray
.IndexOf("=") - 1);objCmd.Parameters.AddWithValue(parametername, parametervalue);
}
SqlContext.Pipe.ExecuteAndSend(objCmd);}
catch(Exception e){
objConn.Close();
}
finally{objConn.Close();
}
[4731 byte] By [
shaikat] at [2008-2-4]