当前位置:编程学习 > C#/ASP.NET >>

大侠帮忙!.net读取Oracle数据库速度慢,看一下我的读取方法是否有问题!谢谢


 是否有垃圾回收机制有关系。。。请高手指明
        /// <summary>
        /// 根据条件获得数据列表
        /// </summary>
        public static List<wlzd> GetList(string strWhere,string tableName)
        {
            List<wlzd> modelList = new List<wlzd>();
            Connection connect = new Connection();OracleConnection con = connect.getConnection();
            OracleCommand com = new OracleCommand();
            com.Connection = con;
            com.CommandType = CommandType.Text;
            StringBuilder strSql = new StringBuilder("");
            strSql.Append("select WLZD_WLBM,WLZD_TZ1,WLZD_TZ2,WLZD_TZ3,WLZD_JLDW,WLZD_QC,WLZD_JC,WLZD_TJR,WLZD_TJRQ,WLZD_BZDM,WLZD_CPDM,WLZD_CPMC,WLZD_BZ,WLZD_CMS,WLZD_DMS,WLZD_CPBZ,WLZD_JBJLDW,WLZD_JBJD,WLZD_TJJDM,WLZD_HGDM,WLZD_FLM,WLZD_YWMC,WLZD_YWJC,WLZD_ZYJD,WLZD_TM,WLZD_ZJM,WLZD_WLSM,WLZD_GRAPH ");
            strSql.Append(" FROM "+tableName);
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            com.CommandText = strSql.ToString();
            try
            {
                com.Connection.Open();
                OracleDataReader read = com.ExecuteReader();
                while (read.Read())
                {
                    wlzd model = new wlzd();
                    model.wlzd_wlbm = read["WLZD_WLBM"].ToString();
                    model.wlzd_tz1 = read["WLZD_TZ1"].ToString();
                    model.wlzd_tz2 = read["WLZD_TZ2"].ToString();
                    model.wlzd_tz3 = read["WLZD_TZ3"].ToString();
                    model.wlzd_jldw = read["WLZD_JLDW"].ToString();
                    model.wlzd_qc = read["WLZD_QC"].ToString();
                    model.wlzd_jc = read["WLZD_JC"].ToString();
                    model.wlzd_tjr = read["WLZD_TJR"].ToString();
                    model.wlzd_tjrq = read["WLZD_TJRQ"].ToString();
                    model.wlzd_bzdm = read["WLZD_BZDM"].ToString();
                    model.wlzd_cpdm = read["WLZD_CPDM"].ToString();
                    model.wlzd_cpmc = read["WLZD_CPMC"].ToString();
                    model.wlzd_bz = read["WLZD_BZ"].ToString();
                    model.wlzd_cms = read["WLZD_CMS"].ToString();
                    model.wlzd_dms = read["WLZD_DMS"].ToString();
                    model.wlzd_cpbz = read["WLZD_CPBZ"].ToString();
                    model.wlzd_jbjldw = read["WLZD_JBJLDW"].ToString();
                    if (read["WLZD_JBJD"].ToString() != "")
                    {
                        model.wlzd_jbjd = int.Parse(read["WLZD_JBJD"].ToString());
                    }
                    model.wlzd_tjjdm = read["WLZD_TJJDM"].ToString();
                    model.wlzd_hgdm = read["WLZD_HGDM"].ToString();
                    model.wlzd_flm = read["WLZD_FLM"].ToString();
                    model.wlzd_ywmc = read["WLZD_YWMC"].ToString();
                    model.wlzd_ywjc = read["WLZD_YWJC"].ToString();
                    if (read["WLZD_ZYJD"].ToString() != "")
                    {
                        model.wlzd_zyjd = int.Parse(read["WLZD_ZYJD"].ToString());
                    }
                    model.wlzd_tm = read["WLZD_TM"].ToString();
                    model.wlzd_zjm = read["WLZD_ZJM"].ToString();
                    model.wlzd_wlsm = read["WLZD_WLSM"].ToString();
                    model.wlzd_graph = read["WLZD_GRAPH"].ToString();
                    modelList.Add(model);
                }
            }
            catch
            {
                com.Connection.Close();
                modelList = null;
            }
            finally
            {
                com.Dispose();
            }
            return modelList;
        }
界面利用repeater 显示 --------------------编程问答-------------------- 你每次读出的数据有多少条? --------------------编程问答-------------------- string.IsNullOrEmpty(read["WLZD_ZYJD"].ToString()?"":""
使用分页查询数据库数据
SELECT id, pid, NAME
  FROM (SELECT t.*, rownum rn
          FROM (SELECT * FROM person t ORDER BY id) t
         WHERE rownum <= 20)
 WHERE rn >= 10; --------------------编程问答--------------------

  using (OracleConnection connection = new OracleConnection(connectionString))
    {
        OracleCommand command = new OracleCommand(queryString);
        command.Connection = connection;
        try
        {
            connection.Open();
            command.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
--------------------编程问答-------------------- 有分页查询,我只是说了个例子, 多人访问,现在反映很慢;于框架有关系吗 --------------------编程问答-------------------- 我建议还是换成dataset试试。 --------------------编程问答-------------------- 还有就是可以借助于缓存。 --------------------编程问答--------------------
引用 3 楼 q107770540 的回复:
C# code

  using (OracleConnection connection = new OracleConnection(connectionString))
    {
        OracleCommand command = new OracleCommand(queryString);
        command.Connection = connecti……


+10
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,