提升DAO.NET性能

  

一、方法中使用接口或基类来传递的优点
在方法中传递对象时,尽量使用类的接口或它的基类,而不要使用具体类,因为接口和抽象类更具兼容性,如:
调用端写成 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);
 
未完待续
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值