请问关于sqlconnection实例化有关问题,请教哪种方式创建好一些

请教关于sqlconnection实例化问题,请问哪种方式创建好一些。
页面1如下:
public partial class xdes1 : System.Web.UI.Page
{
    public static string sconfig = ConfigurationManager.ConnectionStrings["sanid"].ConnectionString;
    public SqlConnection connn = new SqlConnection(sconfig);
protected void InitTree1()
{
connn.open();
SQLCOMMAND代码……
connn.close();
}
protected void InitTree2()
{
connn.open();
SQLCOMMAND代码……
connn.close();
}
protected void InitTree3()
{
connn.open();
SQLCOMMAND代码……
connn.close();
}
}

面页2如下:
public partial class xdes2 : System.Web.UI.Page
{
protected void InitTree1()
{
SqlConnection connn = new SqlConnection(sconfig)
connn.open();
SQLCOMMAND代码……
connn.close();
}
protected void InitTree2()
{
SqlConnection connn = new SqlConnection(sconfig)
connn.open();
SQLCOMMAND代码……
connn.close();
}
protected void InitTree3()
{
SqlConnection connn = new SqlConnection(sconfig)
connn.open();
SQLCOMMAND代码……
connn.close();
}
}

------解决思路----------------------
简单来说没有什么区别,后者写起来比较麻烦。

事实上Connection反复开关不会影响性能,因为其实底层有连接池机制,FCL不会频繁关闭对数据库真正的连接。
------解决思路----------------------
用第一种吧,至少用起来方便 就算有改动也好维护
------解决思路----------------------
我是比较喜欢 第二种方法 
SqlConnection 共用的话 不好控制 
你同时调用InitTree2(),InitTree3()时 第一种写法就有可能出问题
------解决思路----------------------
建议第一种,从代码复用角度第一种更简介,并且易于维护。不过稍微修改下

public partial class xdes1 : System.Web.UI.Page
{
    public static string sconfig = ConfigurationManager.ConnectionStrings["sanid"].ConnectionString;
    public SqlConnection connn = new SqlConnection(sconfig);
....
protected void InitTree2()
{
if(conn != null && conn.State != Connnect.State.Opened)
  connn.open();
SQLCOMMAND代码……
if(conn != null && conn.State != Connnect.State.Closed)
connn.close();
}
....
}

------解决思路----------------------
写个类..调用会累死?

你这样写每个页面都这样 才会真正的死人啊...
------解决思路----------------------
必然是封装到类里去
open和close在函数里操作

传入个sql语句就完了

每个页面都自己去调用数据库,累死了
------解决思路----------------------
第一种好一点点。
------解决思路----------------------
应该封装在一个实例类中,这样写下去很难维护代码。
sqlconnection实例化应该在实例类的new方法中完成。
------解决思路----------------------
应该写 
 
protected void InitTree()
{
   using(SqlConnection connn = new SqlConnection(sconfig))
   {
        conn.Open();
        InitTree1(conn);
        InitTree2(conn);
        InitTree3(conn);
   }
}

protected void InitTree1(....)
{
    ....
}
protected void InitTree2(....)
{
    ....
}
protected void InitTree3(....)
{
    ....
}