Posto un può di codice sperando che si riesce a capire meglio l'errore.
Codice PHP:
public class DataConnection
{
private readonly Queue[list=1] m_connectionPool = new Queue[list=1]();
private string connString;
public DataConnection(string connString)
{
this.connString = connString;
}
private OleDbConnection GetSqlConnection(out bool isNewConnection)
{
OleDbConnection conn = null;
lock (m_connectionPool)
{
if (m_connectionPool.Count > 0)
{
conn = m_connectionPool.Dequeue();
}
}
if (conn == null)
{
isNewConnection = true;
conn = new OleDbConnection(connString);
conn.Open();
}
else
{
isNewConnection = false;
}
return conn;
}
private void ReleaseConnection(OleDbConnection conn)
{
lock (m_connectionPool)
{
m_connectionPool.Enqueue(conn);
}
}
public void ExecuteSelect(string sqlCommand, QueryCallback callback)
{
OleDbConnection conn = null;
bool repeat = false;
do
{
bool isNewConnection = true;
try
{
conn = GetSqlConnection(out isNewConnection);
OleDbCommand cmd = new OleDbCommand(sqlCommand, conn);
OleDbDataReader reader = cmd.ExecuteReader();
callback(reader);
reader.Close();
ReleaseConnection(conn);
repeat = false;
}
catch (Exception e)
{
if (conn != null)
conn.Close();
if (!isNewConnection)
repeat = true;
System.Windows.Forms.MessageBox.Show(e.ToString(), "Error");
}
} while (repeat);
}
}
Qualche idea?