我有一个关于Devart.Data.MySql.MySqlDependency类的问题。我想有两个依赖项检查数据库的变化,但有些我如何得到错误:
网络数据包乱序:收到[1],预期[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");
我非常感谢这件事的帮助
答案 0 :(得分: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显示的用法。