Gentle.Net学习笔记二:常用查询数据的方法总结
2005-09-16 15:41
633 查看
经过一段时间的学习使用,摸索出一些常见的使用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();
}
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();
}
相关文章推荐
- thinkPHP数据查询常用方法总结【select,find,getField,query】
- ORACLE-用户常用数据字典的查询使用方法
- ORACLE用户常用数据字典的查询使用方法
- ORACLE用户常用数据字典的查询方法
- mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结
- 关于C++ 从命令行输入数据 常用输方法cin的一些理解总结
- php数据的增删改查常用方法总结
- ORACLE用户常用数据字典的查询使用方法
- thinkphp数据查询方法总结select ,find,getField,query
- Gentle.Net学习笔记三:常用更新数据的方法总结
- ORACLE用户常用数据字典的查询使用方法(转载收集)
- 数据查询中 IN关键字的使用方法总结
- 大数据时代,海量数据处理常用思路和方法总结
- .NET C#操作文件系统数据的常用方法总结 part1
- R语言中常用的数据变量名修改方法总结
- ORACLE用户常用数据字典的查询使用方法
- ORACLE用户常用数据字典的查询方法
- bos常用数据的查询方法
- SQL Server数据库查询优化的常用方法总结
- CS231n 卷积神经网络与计算机视觉 6 数据预处理 权重初始化 规则化 损失函数 等常用方法总结