string con=ConfigurationSettings.AppSettings["dsn"];
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
getColumn(1,0);
}
}

private void getColumn(object ShowType,object CurrentID)
{
SqlConnection conn=new SqlConnection(con);
conn.Open(); conn.Close();
}
private void getLayoutID(object type)
{
SqlConnection conn=new SqlConnection(con);
conn.Open();
conn.Close();
}
private void getPurview()
{
SqlConnection conn=new SqlConnection(con);
conn.Open(); conn.Close();
}
private void updateColumn()
{
SqlConnection conn=new SqlConnection(con);
conn.Open(); conn.Close();
} }
}
例如这样每个方法里都使用conn.open()conn.close()很消耗服务器资源吗?
应该怎么做啊?提高asp.net的执行效率降低服务器资源消耗都有那些办法啊?

解决方案 »

  1.   

    开个类,然后你把所有这些事件写成一个函数就可以了啊
    类里有3个函数OracleConnecttion conn = new OracleConnecttion();public bool ConnectDB(string ConnectStr)
    {
        conn.ConnecttionString=ConnectStr;
        try
        {
            conn.open();
            return true;
        }
        catch()
        {
            return false;
        }public bool ExecutSQL(string sSql)
    {
        OracleCommand m_Cmd = new OracleCommand();
        m_Cmd.Connecttion=conn;
        m_Cmd.CommandText=sSQl;
        try
        {
            m_Cmd.ExecuteNonQuery();
            m_Cmd.Dispose();
            return true;
        }
        catch()
        {
            m_Cmd.Dispose();
            return false;
        }
    }public void Disconnect()
    {
        conn.Close();
    }到时候要调用的时候先定义
    Cls_Function clsF = new Cls_Function();
    然后在要调用的地方
    if (clsF.ConnectDB("xxxxxxxxx"))    //连接字符串作为参数传入
    {
        bool Executed = clsF.ExecuteSQL("xxxxxxxxx");    //SQL语句作为参数传入
        if (Executed==true)
        {
            Response.Write("<script>alert('执行成功!')</script>");
        }
        else
        {
            Response.Write("<script>alert('好像出问题了!')</script>");
        }
        clsF.Disconnect()
    }
      

  2.   

    使用sqlserver是不是不需要conn.close()?
      

  3.   

    不用conn.close()会浪费你更多的资源~!
      

  4.   

    长连接不释放容易使服务器连接数过多导致无法访问。
    所以同意 etuchang(灌) 的观点。
      

  5.   

    要提高执行效率和降低服务器资源消耗,就要尽量减少对WEB控件的使用,而采用HTML控件,在客户端采用XML的方式实现与服务器的交互,毕竟服务器的资源是非常有限的。
      

  6.   

    55..那怎么提高效率哇。。CPU占用100%了
      

  7.   

    不使用<asp:textbox runat=server
    而用<input runat=server
    还是 使用<input也不使用runat=server?
      

  8.   

    不同意楼上的观点,.NET推出WEB控件就是提供更强大的服务。而之所以可以使用原先的标签,只是为了向下兼容而已。建议楼主在功能完成的情况下进行代码优化。毕竟很多事情自己说得不算,上司说的才算。多有得罪之处,还请海涵。
      

  9.   

    还可以考虑持续连接呀,在一个PAGE生命周期内保持一个连接,就不需要多次连接了,对于access这样的无连接池的数据库方式效果最佳
      

  10.   

    优化代码有很多种办法,这个和经验以及对C#理解深度有关,譬如,在编程中应该大量使用值类型而不是引用类型,对基类型应细化,譬如人名字段应使用无符号整形能不用STRING尽量不使用,当然,这不是绝对的,但是凡事应该为整体考虑,相信楼主加以时日,会成为C#优化高手的!
      

  11.   

    楼主的代码一看就没有DB封装过。建议还是分层写吧。UI层对数据库不可见……
      

  12.   

    么叫DB封装?怎么分层?UI层对数据库不可见……?不懂,教教俺成吧?
      

  13.   

    http://www.microsoft.com/china/msdn/events/webcasts/Webcast/webcast_sep.mspx微软的性能与缓存讲座