2016-12-10 4 views
0

У меня проблема с классом Devart.Data.MySql.MySqlDependency. Я хочу иметь две зависимости проверки базы данных для изменений, но некоторые, как я получаю сообщение об ошибке:Devart.Data.MySql.MySqlDependency не работает с несколькими соединениями

Net packets out of order: received[1], expected[7]

Я не могу справиться с этой ошибкой с помощью MySqlException. Когда я запускаю одну зависимость, она работает нормально, но когда я использую два, она терпит неудачу и вызывает исключение.

Это код, который я использую для запуска этих двух SqlDependencies.

public void register(string id) { 

     try 
     { 
      dept = new MySqlDependency(); 
      dept.AddCommandDependency(objcom); 
      dept.CheckTimeout = 100; 
      dept.OnChange += Dept_OnChange2; 
      objcom.Connection.Name = id; 
      string connection = objcom.Connection.ConnectionString; 
      MySqlDependency.Start(connection); 

     } catch(MySqlException err) {//The exception is not being handled here} 
    } 

Я создаю новый экземпляр класса, в котором находится, и затем вызываю метод. Я делаю это в два раза, это выглядит следующим образом:

MySqlConnection objcon = new MySqlConnection(databasekoplingsadresse_devart()); 
     MySqlConnection objcon_ = new MySqlConnection(databasekoplingsadresse_devart()); 

     SqlDependenCyHandler depthandler = new SqlDependenCyHandler(objcon, "select * from messages"); 
     depthandler.register("obj1"); 

     SqlDependenCyHandler depthandler2 = new SqlDependenCyHandler(objcon_, "select * from tasks"); 
     depthandler2.register("obj2"); 

Я действительно ценю помощь по этому вопросу

ответ

1

Вместо инстанцирования два различных зависимостей, вы можете просто добавить различную зависимость для того же объект? Нечто подобное (непроверенный код):

MySqlConnection objcon = new MySqlConnection(databasekoplingsadresse_devart()); 
MySqlCommand cmdMsg = new MySqlCommand("select * from messages", objcon); 
MySqlCommand cmdTasks = new MySqlCommand("select * from tasks", objcon); 

MySqlDependency dependency = new MySqlDependency(cmdMsg, 100); 
dependency.AddCommandDependency(cmdTasks); 
dependency.OnChange += Dept_OnChange2 
MySqlDependency.Start(objcon.Connection.ConnectionString); 

Это кажется более инлайн с использованием показал на documentation.