在一个click事件里,我要做两个工作,先从数据库里选择有没有id为××的记录,如果有,开始插入数据库操作,没有的话,错误提示,我现在在这个事件里这么写的
try
{
   连接数据库
   执行select操作
     if(××没有)
     {插入操作}
     else
    {提示错误}
}
catch
{异常}
finally
{释放资源}  
但我感觉这么写比较让人费解,能不能把中间部分提取出来?
现在改成这样
ry
{
   连接数据库
   (select) 选择看是否有重复的记录
  设置标记=没有;
}
catch
{异常}
finally
{释放资源}  
if(设置标记==没有)

    try
   {
  
     {插入操作}
   }
   catch
  {异常}
  finally
  {释放资源}   }
这样虽然提取出来了,但是操作数据库打开关闭了两次,也觉得不妥,各位高手,你们碰到一个事件里要操作几次数据库的情况,你们都怎么做的呢?

解决方案 »

  1.   

    这么写
    try
    {
       连接数据库
       (select) 选择看是否有重复的记录
      设置标记=没有;
    }
    catch
    {异常}
    finally
    {释放资源}  
    if(设置标记==没有)

        try
       {
      
         {插入操作}
       }
       catch
      {异常}
      finally
      {释放资源}   }
    这样就数据库打开关闭两次
    如果这么写
    ry
    {
       连接数据库
       (select) 选择看是否有重复的记录
      设置标记=没有;
    }
    catch
    {异常}
    finally
    {释放资源}  
    if(设置标记==没有)

        try
       {
      
         {插入操作}
       }
       catch
      {异常}
      finally
      {释放资源}   }
    这样发生;异常后释放不了资源总之都有不好的地方
      

  2.   

    连接两次数据库怕什么。ado.net给你处理。物理上不一定是要连接两次的。都放在连接池里了。
      

  3.   

    不要考虑存储过程,我现在想明白的是,就一个click事件里,操作几次数据库,怎么解决比较好?