提升DAO.NET性能

原创 2007年09月11日 22:52:00

  

一、方法中使用接口或基类来传递的优点
在方法中传递对象时,尽量使用类的接口或它的基类,而不要使用具体类,因为接口和抽象类更具兼容性,如:
调用端写成List list = new List();MethodA(list);
被调用时端写成void MethodA(IList list);或void MethodA(ICollection list)的样子。
以后当要传递的只要是实现IList或ICollection接口的对象,都可以做为参数传进去,前提是在这个方法里,有些List专用的方法就无法调用了,只能调用它其类或接口中公开的方法。
二、高效率的增加SQL语句查询条件(已知要知道加几个参数版)
    StringBulider sqlSelect1 = new StringBulider(
“select field1, field2 from t where field1 =@field1 ”)
SqlParameter[] Parms = new SqlParameter{/*TODO:add parm*/}
If(field2 != null)
{
    arraySize = parms1.Length;
    sqlSelect1.Append(“and field2 =@field2”);
    Array.Resize<SqlParameter>(ref parms, arraySize+1);
    Parms[arraySize] = new SqlParameter(“@field2”,SqlDbType.VarChar);
    Parms[arraySize].Value = “xxx”;
}
三、高效率的增加SQL语句查询条件(未知要知道加几个参数版)
    Int arraySize;
If(field != null)
{
    arraySize = parms.length;
    sqlSeelect.Append(“and field = @field”);
    Array.Resize<SqlParameter>(ref parms, arraySize+1);
    parms[arraySize] = new SqlParameter(“@field”,SqlDbType.VarChar);
    parms[arraySize].Value = “xxx”;
}
四、高效使用SqlHelper的事务方法:
    SqlConnection conn = new SqlConnection(ConnString);
    Conn.Open();
    SqlTransaction trans = conn.BeginTransaction(IsolationLevel.ReadCommited);
    Try{
SqlHepler.ExecuteNonQuery(trans, CommandType.Text, sqlDelete,parms);
        For(int i=0;i<10;i++)
        {   parms2[0].Value = “aaa”;
            SqlHelper.ExecuteNonQuery(
trans,CommandType.Text, sqlInsert, parms2);
}
        trans.Commit();
}catch(Exception e){ trans.Rollback();
 throw new ApplicationException(e.Message)
}finally{ Conn.Close();}
五、遍历DataRead时查询这某字段是否为DBNull的方法:
    While(dr.Read()){
    If(!dr.IsDBNull(0)){dr.GetInt32(0);}}
六、使用ExecuteScalar取ID不出错的方法:
    Int ID = 0;
    Int.TryParse(SqlCommand.ExecuteScalar(
conn, CommandType.Text, sqlInsert, parms).ToString(), out ID);
    return ID;
七、使用ExecuteScalar来取Count(field)的SQL语句时直接进行显示转换可提高性能:
    Total = (int)SqlCommand.ExecuteScalar(
SqlConneciton, CommandType.Text, sqlSelect,parms);
 
未完待续

相关文章推荐

提升ASP.net性能的方法

一、返回多个数据集  检查你的访问数据库的代码,看是否存在着要返回多次的请求。每次往返降低了你的应用程序的每秒能够响应请求的次数。通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你...
  • zyyjc
  • zyyjc
  • 2011年07月29日 09:58
  • 500

asp.net 性能提升

ASP.NET Web API 是非常棒的技术。编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能。 在本文中,我将介绍8项提高 ASP.NET We...

11个显著提升 ASP.NET 应用程序性能的技巧——第1部分

【编者按】本文出自站外作者 Brij Bhushan Mishra ,Brij 是微软 MVP-ASP.NET/IIS、C# Corner MVP、CodeProject Insider,前 Code...

应用.NET缓存功能提升Web Form响应性能

一、缓存概述 缓存是一项在计算机中广泛用来提高性能的技术,它将访问频率高或构造成本高的数据保留在内存中,在缓存有效期内对该数据的访问可以直接从内存中读取,而不必重复执行,这样既节省了系统资源...

ASP.NET站点性能提升-减少最后一字节的时间

http://www.cnblogs.com/ntwo/archive/2011/01/04/1925707.html 最后一字节的时间是生成.aspx并将它通过互联网传送到浏览器的时间。 查...

ASP.NET性能提升秘诀之管道与进程优化

ASP.NET 2.0中包涵了很多秘密,当你发现它时,可以为你的程序带来更大的性能和扩展性提升。例如,了解了在Membership和Profile provider提供程序中所隐藏的秘密瓶颈后就可以方...

asp.net的10个提升性能或扩展性的秘密(二)

简介 Asp.net有很多值得你挖掘的“秘密”,当你发现了它们,将会给你网站的性能和可扩展性带来巨大提升!例如,对于Membership以及Profile提供程序有一些秘密的瓶颈,它们很容易...

.NET的DAO类

写了一个.NET的简易的DAO类 1.可以支持带或不带参数的SQL 2.可以返回XML的结果集或dataset的结果集 using System; using System.Col...

『Spring.NET+NHibernate+泛型』框架搭建之DAO(三)★

本节内容介绍Nhibernate所封装的数据库访问层。不过我加入了泛型进行封装。大概思路:首先,我们有一个接口层,还有一个对应的实现层;在接口层中我们先定义一个父接口,父接口中定义每一个接口都可能会用...

Asp.net Web Api开发(第二篇)性能:使用Jil提升Json序列化性能

Asp.net Web Api开发(第二篇)性能:使用Jil提升Json序列化性能
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:提升DAO.NET性能
举报原因:
原因补充:

(最多只允许输入30个字)