webservice关闭连接

大唐三俗法师 2014-09-17 09:56:43
winform连接webservice,第一次调试成功了,可第二次登陆就出现了错误,显示的是,服务器无法处理请求。 ---> 连接未关闭。 连接的当前状态为打开。
/// <summary>
/// 用户登录
/// </summary>
/// <param name="UserName">用户名</param>
/// <param name="PassWord">密码</param>
/// <returns></returns>
public string UserLogin(string UserName, string PassWord)
{
try
{
DataBase.con.Open();//打开数据库连接

//根据用户名和密码查询该用户是否存在
OracleCommand cmd = new OracleCommand("select count(*) from T_USER where USER_NAME='" + UserName + "'and USER_PASSWORD='" + PassWord + "'", DataBase.con);
int num = Convert.ToInt32(cmd.ExecuteScalar());
if (num > 0)//如果存在该用户
{
//根据用户名和密码查询用户相关信息
OracleCommand comd = new OracleCommand("select distinct EMP_ID,TEAM_ID,EMP_NAME FROM T_EMPLOYEE WHERE EMP_ID=(select USER_ID from T_USER where T_USER.USER_NAME='" + UserName + "'and T_USER.USER_PASSWORD='" + PassWord + "')", DataBase.con);
OracleDataReader dr = comd.ExecuteReader();
if (dr.Read())
{
EUname = UserName;
EPWD = PassWord;
EID = Convert.ToInt32(dr["EMP_ID"]);
TID = Convert.ToInt32(dr["TEAM_ID"]);
EName = dr["EMP_NAME"].ToString();
}
DataBase.con.Close();
DataBase.con.Dispose();
return EUname + "@@" + EPWD + "@@" + EID + "@@" + TID + "@@" + EName;
}
else
{
DataBase.con.Close();
return "该用户不存在!";
}
}
catch (Exception ex)
{
throw ex;
}
}
...全文
853 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxingmin 2014-09-17
  • 打赏
  • 举报
回复
dr.Close(); //加上这句试试 DataBase.con.Close();
於黾 2014-09-17
  • 打赏
  • 举报
回复
比如,如果你的代码出错,走到了catch里,则数据库连接没有关闭就出去了
於黾 2014-09-17
  • 打赏
  • 举报
回复
你应该在try...catch...finarlly 里写DataBase.con.Close();而不是在if...else里写 肯定有某个分支没有关闭数据库而直接返回了

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧