
Me ayudan con este namespace
Publicado por Alejandro Tomé (5 intervenciones) el 22/03/2007 22:26:59
Hola grupo, encontré este codigo en la web que me sirve, pero no se como llamarlo; intento pero nada.
Saludos
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Transactions;
namespace DTCTest.Solution
{
internal sealed class ConnectionPool
{
private static readonly ConnectionPool instance =
new ConnectionPool();
private Dictionary<string, SqlConnection> connections;
private string connectionString;
private ConnectionPool()
{
connections = new Dictionary<string, SqlConnection>();
connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DbConn"].ConnectionString;
}
public static ConnectionPool GetConnectionPool()
{
return instance;
}
public SqlConnection Open()
{
SqlConnection conn;
Transaction current = Transaction.Current;
if (current == null)
{
conn = new SqlConnection(connectionString);
conn.Open();
return conn;
}
else
{
string localIdentifier = current.TransactionInformation.LocalIdentifier;
if (connections.TryGetValue(localIdentifier, out conn))
{
return conn;
}
else
{
conn = new SqlConnection(connectionString);
conn.Open();
connections.Add(localIdentifier, conn);
current.TransactionCompleted += new TransactionCompletedEventHandler(current_TransactionCompleted);
return conn;
}
}
}
void current_TransactionCompleted(object sender, TransactionEventArgs e)
{
Transaction current = e.Transaction;
string localIdentifier = current.TransactionInformation.LocalIdentifier;
SqlConnection conn;
if (connections.TryGetValue(localIdentifier, out conn))
{
conn.Close();
connections.Remove(localIdentifier);
}
}
public void Close(SqlConnection conn)
{
Transaction current = Transaction.Current;
if (current == null)
conn.Close();
}
}
}
Saludos
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Transactions;
namespace DTCTest.Solution
{
internal sealed class ConnectionPool
{
private static readonly ConnectionPool instance =
new ConnectionPool();
private Dictionary<string, SqlConnection> connections;
private string connectionString;
private ConnectionPool()
{
connections = new Dictionary<string, SqlConnection>();
connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DbConn"].ConnectionString;
}
public static ConnectionPool GetConnectionPool()
{
return instance;
}
public SqlConnection Open()
{
SqlConnection conn;
Transaction current = Transaction.Current;
if (current == null)
{
conn = new SqlConnection(connectionString);
conn.Open();
return conn;
}
else
{
string localIdentifier = current.TransactionInformation.LocalIdentifier;
if (connections.TryGetValue(localIdentifier, out conn))
{
return conn;
}
else
{
conn = new SqlConnection(connectionString);
conn.Open();
connections.Add(localIdentifier, conn);
current.TransactionCompleted += new TransactionCompletedEventHandler(current_TransactionCompleted);
return conn;
}
}
}
void current_TransactionCompleted(object sender, TransactionEventArgs e)
{
Transaction current = e.Transaction;
string localIdentifier = current.TransactionInformation.LocalIdentifier;
SqlConnection conn;
if (connections.TryGetValue(localIdentifier, out conn))
{
conn.Close();
connections.Remove(localIdentifier);
}
}
public void Close(SqlConnection conn)
{
Transaction current = Transaction.Current;
if (current == null)
conn.Close();
}
}
}
Valora esta pregunta


0