我在我的控制器中打开数据库连接并将打开的连接传递给我的模型以使用该连接。
但自从第二次调用控制器(Ajax)以来,它返回一条错误消息,上面写着“必须打开连接”。我重新加载了页面,然后再次调用控制器然后它运行良好。但是对于第二次调用,它会一直返回该错误消息。
我的控制器有打开数据库连接的代码,所以我相信,它应该为每个处理(调用)打开数据库。并且(打开的)代码在 using{} 块中,因此在使用它后,它应该自动关闭。
但我认为我做错了:(
这是我的代码,
public JsonResult myControllerMethod() // Action Controller
{
using (AdsConnection conn = new AdsConnection(connString))
{
conn.Open();
AdsTransaction txn = conn.BeginTransaction(); // Begin Transaction
try
{
MyModel mo = new MyModel();
mo.doProcess(conn); // pass connection to model
txn.Commit();
return Json(new { success = true });
}
catch (Exception e)
{
txn.Rollback();
return Json(new { success = false, message = e.Message });
}
}
}
我的模型
public void doProcess(AdsConncection conn){ // Model
try{
..
//AdsCommand select, update, delete and insert....
..
}catch(Exception e){
throw e;
}
}
有谁知道,我做错了什么?请给我建议。
谢谢