zoukankan      html  css  js  c++  java
  • Gentle.Net学习笔记二:常用查询数据的方法总结

    经过一段时间的学习使用,摸索出一些常见的使用Gentle.net查询数据的方法,现在总结如下:
    1.简单的查询:
       最简单的查询就是使用实体类的Retrieve()方法返回一个实体,如 UT_BM_COALMINE cm=UT_BM_COALMINE.Retrieve("1201010001");
    如果需要返回一个集合,就要使用下面的方法.  
      private void btnSelectSimple_Click(object sender, System.EventArgs e)
      { 
       SqlBuilder sb=new SqlBuilder(Gentle.Framework.StatementType.Select,typeof(UT_BM_COALMINE));
       sb.AddConstraint(Operator.Equals,"coalmineid","1201010001");
       SqlStatement stmt=sb.GetStatement();
       SqlResult sr=Broker.Execute(stmt);
       DataView dv=ObjectView.GetDataView(sr);
       BindData(dv);
      }
    上面的代码中使用的形式是最简单的条件添加,操作符-字段-值.
    2.任意条件的查询:
      其实SqlBuilder的AddContraint方法,
    也可以添加任意的条件,例如使用数据库函数,计算列等等,如下面所示
     private void btnSelectComplex_Click(object sender, System.EventArgs e)
      {
       SqlBuilder sb=new SqlBuilder(Gentle.Framework.StatementType.Select,typeof(UT_BM_COALMINE));
       sb.AddConstraint("substr(coalmineid,4,3)='101'");
       sb.AddConstraint("rownum=1");  //rownum 是oracle的伪列,此语句可以取到第一行数据
       SqlStatement stmt=sb.GetStatement();
       SqlResult sr=Broker.Execute(stmt);
       DataView dv=ObjectView.GetDataView(sr);
       BindData(dv);
      }
    以上示例都是将结果表示为DataView,也可以表示为TypedArrayList.
     TypedArrayList tal=new TypedArrayList(typeof(UT_JS_COALMINE));
     tal=(TypedArrayList)ObjectFactory.GetCollection(typeof(UT_JS_COALMINE),sr,tal);
     return tal;
    DataView的好处是使用方便,TypedArrayList也有好处,就是可以将List中的数据行重新转换为实体类,例如:
     UT_JS_COALMINE cm=(UT_JS_COALMINE)tal[1];
    3.复杂查询:
       如果想要执行联合查询,或者比较复杂的查询,可以直接使用Sql语句进行,如下所示:
      private void btnSelectFree_Click(object sender, System.EventArgs e)
      {
       string sql=@" select a.railroadname,b.linename,c.stationname from ut_bm_railroad a,ut_BM_line b,ut_bm_station c where
         substr(b.lineid,1,2)=a.railroadid and substr(c.stationid,1,4)=b.lineid";
       SqlResult sr=Broker.Execute(sql);
       DataView dv=ObjectView.GetDataView(sr);
       BindData(dv);
      }
    上面代码执行的查询就不能用TypedArrayList来取得结果了,但是仍然可以使用IList,不过不如DataView方便了.
     private void BindData(DataView dv) //上面代码用到的数据绑定函数.
      {
       UltraWebGrid1.Columns.Clear();
       UltraWebGrid1.DataSource=dv;
       UltraWebGrid1.DataBind();
      }
  • 相关阅读:
    java 实现前面带零的数字进行加减运算(保留前面的0)
    java 判断字符串是否是整数(纯数字:正整数、负整数、0)、至少包含一位小数、数字(可以是整数或小数)
    java 抽象类使用@Autowrited注入对象,子类直接使用父类的该属性
    java、springboot使用proguard混淆代码
    idea 使用阿里云仓库下载的jar包出现证书校验问题(PKIX:unable to find valid certification path to requested target)
    windows10安装zookeeper-3.6.2并生成zookeeper服务
    zookeeper-3.4.8 集群搭建
    zookeeper安装和使用 windows环境
    Dubbo入门---搭建一个最简单的Demo框架
    服务端高并发分布式架构演进之路
  • 原文地址:https://www.cnblogs.com/dajianshi/p/238442.html
Copyright © 2011-2022 走看看