我现在做#C访问数据库返回单个值给网页,在SQLHELP.CS中函数如下,
public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
{
   using (SqlConnection con=new SqlConnection(constr))
   {
        using (SqlCommand cmd=new SqlCommand(sql,con))
        {
          //如果pms为null,则直接调用cmd.Parameters.AddRange(pms)会出错
             if (pms!=null)
           {
             cmd.Parameters.AddRange(pms);     
           }  
           con.Open();
           return cmd.ExecuteNonQuery();
           //con.close();//
         }
   } 
}
然后通过程序调用它是可以得到想要的值的,但是无法关闭数据库,如果用这个函数,如果加上最后一个执行完后关闭数据库就得不到想要的值了,然后通过查资料发现这个函数是执行后如果关闭数据库值没有是正常的,他不像DATATABLE那样把数据存起来了。
那么我想问因为是只想读一个返回值,不想用DATATABLE浪费内存,怎么才了用了这个函数在一个合适的地方关于数据库连接?因为书上说调用完数据库后必须关闭以免影响其他操作哦,谢谢大家了。
总结上面的:问题就是我用了这个返回单个值的函数,也就是我的网页得到了这个值后,应该在哪个合适的地方关闭数据库连接好?。谢谢大家了,新手来着。数据库

解决方案 »

  1.   

    using() {} 将自动释放()中对象占用的资源,就不用手动Close了
      

  2.   

    这个东西是微软作的,不会有那么低级的错误的。.net 里面凡是  using (*** A=new ***())之类的代码都是自动释放资源的。
      

  3.   

    如果真要关闭,你可以试试con.Open();
    int rows=cmd.ExecuteNonQuery();
    con.close();
    return rows;
      

  4.   

    按照1,2楼的意思就是如果是通过USING打开的数据库读取数据,然后在程序中获取数据库的值后,自己没有必要再手动CLOSE数据库了,当USING执行完后,他自己会conn.Dispose();//