0
나는 devart dotconnect를 통해 mysql을 사용하고있다. 위의 코드는 다중 스레드 클래스의 일부입니다.executereader 결코 반환
public void DoQuery(ref Devart.Data.MySql.MySqlDataReader Dr, string QryStr)
{
lock (locker)
{
//Program.MyMutex.WaitOne();
Devart.Data.MySql.MySqlCommand Command = new Devart.Data.MySql.MySqlCommand();
int ThreadID = Convert.ToInt32(Thread.CurrentThread.Name);
MySqlConnection FCon = Program.Con[ThreadID];
if (FCon.State != System.Data.ConnectionState.Open) Program.Con[ThreadID] = Program.BuildDbConnection();
Command.Connection = FCon;
Command.CommandTimeout = 0;
Command.FetchAll = true;
Command.CommandText = QryStr;
if (Dr != null) Dr.Dispose();
if (QryStr.Substring(0, 6).Equals("select", StringComparison.CurrentCultureIgnoreCase) != true) Command.ExecuteNonQuery(); else Dr = Command.ExecuteReader(); this line randomly stuck on ExecuteReader.
Command.Dispose();
}
}
이 메서드는 dr 호출자 메서드를 반환하므로 거기에서 사용할 수 있습니다. –