private System.Threading.ReaderWriterLock rwl;
public DataBase()
{
rwl =
new System.Threading.ReaderWriterLock();
}
/// <summary>
/// 该方法Command执行ExecuteReader操作
/// </summary>
public IDataReader ExecSqlReader(
string sqlText, List<IDbDataParameter> parameterList =
null)
{
rwl.AcquireWriterLock(System.Threading.Timeout.Infinite);
IDataReader drReader;
SqlConnection(sqlText, false);
AddParameter(parameterList);
IDBConnection.Open();
drReader =
IDBCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
rwl.ReleaseWriterLock();
return drReader;
}
private static object objLock =
new object();
/// <summary>
/// 该方法Command执行ExecuteReader操作
/// </summary>
public IDataReader ExecSqlReader(
string sqlText, List<IDbDataParameter> parameterList =
null)
{
lock (objLock)
{
IDataReader drReader;
SqlConnection(sqlText, false);
AddParameter(parameterList);
IDBConnection.Open();
drReader =
IDBCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return drReader;
}
}
static int i =
0;
/// <summary>
/// 该方法Command执行ExecuteReader操作
/// </summary>
public IDataReader ExecSqlReader(
string sqlText, List<IDbDataParameter> parameterList =
null)
{
IDataReader drReader =
null;
while (
true)
{
if (i ==
0)
{
System.Threading.Interlocked.Increment(ref i);
SqlConnection(sqlText, false);
AddParameter(parameterList);
IDBConnection.Open();
drReader =
IDBCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
System.Threading.Interlocked.Decrement(ref i);
break;
}
}
return drReader;
}
转载于:https://www.cnblogs.com/daixingqing/p/4437271.html