查询时出现超时
当我执行
public int Delete(int id)
{
SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction);
conn.Open();
SqlTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
//获得违纪,异动记录
StuStatusChangeEntity stuStatusChangeEntity = dal.GetGetStuStatusChangeById(id);
//获得学籍异动记录
StuStatusEntity stuStatuEntity=dalStuStatus.GetModel(stuStatusChangeEntity.xsid, stuStatusChangeEntity.bh);
//根据学籍异动记录获得学生记录并更新学生记录
StudentEntity studentEntity = dalStudent.GetstudentById(stuStatuEntity.id);
studentEntity.Xh = stuStatuEntity.jxh;
studentEntity.Bh = stuStatuEntity.jbh;
studentEntity.Nj = stuStatuEntity.jnj;
studentEntity.Jw_zyh= stuStatuEntity.jw_jzyh;
//根据专业号取专业
ProfessionalEntity professionalEntity = dalProfessional.GetProfessioanlById(Convert.ToInt32(stuStatuEntity.jw_jzyh));
//根据专业的改变来变动相应的学生的基本信息
//修改学生信息中的学制
studentEntity.Jw_zymc = professionalEntity.Zymc;//专业名称
studentEntity.Fy = professionalEntity.Ssdw; //院校
studentEntity.Pycc = professionalEntity.Jw_zz_type;//培养层次
studentEntity.Xhbd = "0";//学号变动 此处有 问题,问问老师
// 删除违纪,异动记录
dal.Delete(id,trans);
//删除学籍异动记录
dalStuStatus.Delete(stuStatuEntity.id,trans);
dalStudent.Update(studentEntity,trans);
trans.Commit();
}
catch (Exception e)
{
trans.Rollback();
throw e;
return -1;//操作失败
}
finally
{
conn.Close();
}
return 1;
}
时出现StuStatusChangeEntity stuStatusChangeEntity = dal.GetGetStuStatusChangeById(id);取数据 超时,等我仔细思考发现,我在上面打开了 conn.Open();连接,然后再执行GetGetStuStatusChangeById(id);,而它执行时也要打开连接,导致第一次连接没关,就去打开第二次连接,出现错误,改正如下,先取出数据,调用GetGetStuStatusChangeById(id);,而这类函数里面执行完了就关闭了,在打开连接就没有问题了!
此函数原型,里面关闭了连接
stuStatusChangeEntity GetGetStuStatusChangeById(id)
{
...............
con.open();
.............
con.close();
.............
}
改正如下:
public int Delete(int id)
{
//获得违纪,异动记录
StuStatusChangeEntity stuStatusChangeEntity = dal.GetGetStuStatusChangeById(id);
//获得学籍异动记录
StuStatusEntity stuStatuEntity=dalStuStatus.GetModel(stuStatusChangeEntity.xsid, stuStatusChangeEntity.bh);
//根据学籍异动记录获得学生记录并更新学生记录
StudentEntity studentEntity = dalStudent.GetstudentById(stuStatuEntity.id);
studentEntity.Xh = stuStatuEntity.jxh;
studentEntity.Bh = stuStatuEntity.jbh;
studentEntity.Nj = stuStatuEntity.jnj;
studentEntity.Jw_zyh= stuStatuEntity.jw_jzyh;
//根据专业号取专业
ProfessionalEntity professionalEntity = dalProfessional.GetProfessioanlById(Convert.ToInt32(stuStatuEntity.jw_jzyh));
//根据专业的改变来变动相应的学生的基本信息
//修改学生信息中的学制
studentEntity.Jw_zymc = professionalEntity.Zymc;//专业名称
studentEntity.Fy = professionalEntity.Ssdw; //院校
studentEntity.Pycc = professionalEntity.Jw_zz_type;//培养层次
studentEntity.Xhbd = "0";//学号变动 此处有 问题,问问老师
SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction);
conn.Open();
SqlTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
try
{
// 删除违纪,异动记录
dal.Delete(id,trans);
//删除学籍异动记录
dalStuStatus.Delete(stuStatuEntity.id,trans);
dalStudent.Update(studentEntity,trans);
trans.Commit();
}
catch (Exception e)
{
trans.Rollback();
throw e;
return -1;//操作失败
}
finally
{
conn.Close();
}
return 1;
}