数据库组件 Hxj.Data(七) (sql篇)
来源:互联网 发布:web图书管理系统源码 编辑:程序博客网 时间:2024/05/17 21:40
上一节讲述的是删除操作,本节将讲述如何直接执行sql语句。
直接执行sql语句是使用FromSql方法。
DbSession.Default.FromSql("select * from products").ToDataTable();
这样看起来亲切多了吧,直接sql就可以执行。
当然也可添加参数的啊。
DbSession.Default.FromSql("select * from products where productid=pid").AddInParameter("pid", DbType.Int32, 1).ToDataTable();
这样的查询条件是productid=1返回一条记录。
这里sql语句中pid要确保唯一,不然都会被替换成参数的。
比如:select * from products where productid=productid 这样在sqlserver下就会被替换成select * from products where @productid=@productid
这里只是做了简单的替换,所以确保申明的参数唯一性。
当多个参数时可如下写法:
DbParameter[] parameters = new DbParameter[2];
parameters[0] = DbSession.Default.Db.DbProviderFactory.CreateParameter();
parameters[0].DbType = DbType.Int32;
parameters[0].ParameterName = "pid";
parameters[0].Value = 1;
parameters[1] = DbSession.Default.Db.DbProviderFactory.CreateParameter();
parameters[1].DbType = DbType.Int32;
parameters[1].ParameterName = "cid";
parameters[1].Value = 2;
DbSession.Default.FromSql("select * from products where productid=pid or categoryid=cid")
.AddParameter(parameters)
.ToDataTable();
这样写似乎太麻烦了,更简洁的写法如下:
DbSession.Default.FromSql("select * from products where productid=pid or categoryid=cid")
.AddInParameter("pid", DbType.Int32, 1)
.AddInParameter("cid", DbType.Int32, 2)
.ToDataTable();
这样就清爽多了。
返回类型还可以如下:
IDataReader ToDataReader()
返回DataReader
DataSet ToDataSet()
返回DataSet
int ExecuteNonQuery()
返回受影响的条数
object ToScalar()
返回单个值 TResult ToScalar<TResult>()
返回执行类型的值
也可返回实体。
TEntity ToFirst<TEntity>()
返回第一条实体
List<TEntity> ToList<TEntity>()
返回实体列表
sql语句的执行也是简单明了的。
下一节将讲述存储过程的执行。
- 数据库组件 Hxj.Data(七) (sql篇)
- 数据库组件 Hxj.Data (一)(介绍篇)
- 数据库组件 Hxj.Data (三)(查询操作篇)
- 数据库组件 Hxj.Data (四)(添加操作篇)
- 数据库组件 Hxj.Data (六)(删除操作篇)
- 数据库组件 Hxj.Data (八)(存储过程篇)
- 数据库组件 Hxj.Data (三十一)(MySQL篇)
- 数据库组件 Hxj.Data (五)(更新操作篇)
- 数据库组件 Hxj.Data (十) (输出组件执行的sql)
- 数据库组件 Hxj.Data (二十四)(Sqlite数据库)
- 数据库组件 Hxj.Data (二)(实体生成工具)
- 数据库组件 Hxj.Data (十一) (where条件)
- 数据库组件 Hxj.Data (十三) (子查询)
- 数据库组件 Hxj.Data (十四) (联合查询)
- 数据库组件 Hxj.Data (十六) (查询的字段)
- 数据库组件 Hxj.Data (十七) (事务)
- 数据库组件 Hxj.Data (十八) (批处理)
- 数据库组件 Hxj.Data (十九) (事务二)
- 详尽的IPC$资料
- NetBeans 时事通讯(刊号 # 102 - May 14, 2010)
- Android开发2:开发背景知识
- 利用注册表操作系统右键菜单(转)
- SQL Server分页3种方案
- 数据库组件 Hxj.Data(七) (sql篇)
- Excel行列倒置
- 今天刚刚申请的这个账号。。
- 学习感想
- vc怎样判断系统是64位
- 2010年医疗行业方案商市场调查
- javax.microedition.lcdui.game.Layer
- 二维条码:中国自主知识产权又将湮没于无形
- 宋经元:用DNA条码鉴定中药材