void Close ()
{
if (transaction != null && transaction.IsOpen)
transaction.Rollback ();
if (dataReader != null || xmlReader != null) {
if(tds != null) tds.SkipToEnd ();
dataReader = null;
xmlReader = null;
}
if (tds != null && tds.IsConnected) {
if (pooling && tds.Pooling) {
if (pool != null) {
pool.ReleaseConnection (tds);
pool = null;
}
} else {
tds.Disconnect ();
}
}
if (tds != null) {
tds.TdsErrorMessage -= new TdsInternalErrorMessageEventHandler (ErrorHandler);
tds.TdsInfoMessage -= new TdsInternalInfoMessageEventHandler (MessageHandler);
}
ChangeState (ConnectionState.Closed);
}