Dispose of an object that was created as a parameter of a C # method

I have the following classes:

private static readonly string ConnectionString = "Dummy";
public static SqlConnection GetConnection()
    {
        SqlConnection Connection = new SqlConnection(ConnectionString);
        return Connection;
    }

public static SqlDataAdapter GetDataAdapter(string Query)
    {
        SqlDataAdapter Adapt = new SqlDataAdapter(Query, GetConnection());
        return Adapt;
    }
  • How can I delete the SqlConnection object created by passing GetConnection () as a parameter in my SqlDataAdapter constructor?
  • Will it be automatically deleted when I delete the Adapt object in the GetDataAdapter () method?
  • If you cannot use it, how do you suggest continuing?

Thanks for any help.

+5
source share
2 answers

Description

If you post yours SqlDataAdapter, it will not delete SqlConnection, because it is unclear whether you want to use the connection again. You must change your design to do this.

I suggest passing SqlConnectionfunctions GetDataAdapter.

Example

static void Main(string[] args)
{ 
    using (SqlConnection connection = GetConnection()) 
    {
        using (SqlDataAdapter adapter = GetDataAdapter("YourQuery", connection)) 
        {

        }
        // SqlDataAdapter is disposed
    }
    // SqlConnection is disposed
}

private static readonly string ConnectionString = "Dummy";
public static SqlConnection GetConnection()
{
    SqlConnection Connection = new SqlConnection(ConnectionString);
    return Connection;
}

public static SqlDataAdapter GetDataAdapter(string Query, SqlConnection connection)
{
    SqlDataAdapter Adapt = new SqlDataAdapter(Query, connection);
    return Adapt;
}
+1
source

, . :

public static SqlDataAdapter GetDataAdapter(SqlConnection connection, string Query)
{
    SqlDataAdapter Adapt = new SqlDataAdapter(Query);
    Adapt.Connection = connection;
    return Adapt;
}

:

using (var connection = GetConnection())
using (var adapter = GetAdapter(connection, query))
{
    // do stuff
}

, , - - .

+1

All Articles