从心所欲,不逾矩

天道酬勤,坚持是成功惟一的秘密

提升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);
 
未完待续
阅读更多
文章标签: list exception sql null
个人分类: C#和ASP.NET
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

提升DAO.NET性能

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭