问题1:SqlConnection连接数据库后,如果不手动关闭(conn.close();),它能自动关闭吗?问题2:SqlDataAdapter,SqlDataReader对数据库操作的时候,能实现对资源访问的互斥吗?谢谢大家!!

解决方案 »

  1.   

    问题1:SqlConnection连接数据库后,如果不手动关闭(conn.close();),它能自动关闭吗?
    A:会自动关闭,不过要等好久问题2:SqlDataAdapter,SqlDataReader对数据库操作的时候,能实现对资源访问的互斥吗?
    A:SqlDataAdapter 可以共享 SqlConnection
      SqlDataReader 独占 SqlConnection
      

  2.   

    会自动关闭
    使用 SqlDataAdapter 前可以不conn.open(),使用完不用关闭使用 SqlDataReader 前SqlConnection 必须open
      

  3.   

    SqlCommand是不是独占 SqlConnection??
      

  4.   


    会自动关闭,如果用SqlDataAdapter可以不用显示的打开或关闭连接
      

  5.   

    1。你可以这样打开 sqlconnection conn=new sqlconnection();然后处理
    2。你也可以 using(sqlconnection conn=new sqlconnection())
                    {
                     //建Adapter、Reader等。  进行数据库操作
                    }
    上面2种不同的是: 方法1不会自动关闭conn.state=="open";但方法2会在用完后自动关闭里面的所有对象,包括Reader对象Reader的同时不能使用Adapter,能实现对资源访问的互斥,Adapter是自动利用数据流读出数据并暂存起来,当使用存储过程的时候,需要使用打开的Command,来操作参数,Adapter.SelectCommand=Command;
      

  6.   

    问题1:SqlConnection连接数据库后,如果不手动关闭(conn.close();),它能自动关闭吗?
    从习惯和效率来说,都必须关闭
    问题2:SqlDataAdapter,SqlDataReader对数据库操作的时候,能实现对资源访问的互斥吗?
    SqlDataAdapter 可以共享 SqlConnection
      SqlDataReader 独占 SqlConnection