普通的查询都可以构造出来了,当然太复杂的报表还是手写sql或者存储过程等去实现吧。
下一节讲Insert
数据库组件 Hxj.Data (四)(添加操作篇)
上一节讲述如何使用查询。这节将讲添加数据操作即Insert
cs后台按钮代码:
protected void Button1_Click(object sender, EventArgs e) {
//新建一个实体
Products p = new Products();
17
//开启修改 (开启修改后的添加操作将只insert赋值过的字段) //p.Attach();
//获取页面中输入的值
EntityUtils.UpdateModel
//返回值 如果有自增长字段,则返回自增长字段的值
int returnValue = DbSession.Default.Insert
//将插入的数据查询出来
gridView.DataSource = DbSession.Default.From
这样就完成了一个添加操作,代码不多。
其中EntityUtils.UpdateModel
这个需要讲解一下,这个asp.net辅助类,读取页面中的值对应实体的值,页面控件命名格式就是前缀txt_加上属性名。
Insert
数据库组件 Hxj.Data (五)(更新操作篇)
上节讲完添加操作,这节将讲述更新操作,Update
先来例子:
//获取Products表第一行
Products p = DbSession.Default.From
//开启修改 (修改操作之前 必须执行此方法) p.Attach();
p.ProductName = \;
//获取修改记录
//List
//清除修改记录 (清除后更新操作无效) //p.ClearModifyFields();
18
//更新
//返回0表示更新失败 组件有事务会自动回滚 //返回1表示更新成功
//更新成功返回值就是受影响的条数
int returnvalue = DbSession.Default.Update
这样就完成了更新操作,将ProductName修改为 ”apple”.
与此等效语句也可写为:
DbSession.Default.Update
一般只修改单个值的时候推荐这种做法。
还有一种值得推荐的做法是:
Dictionary
int returnvalue = DbSession.Default.Update
把需要修改的字段和值放到字典中,然后根据条件去更新。
修改操作是不是也很简单了啊。
下一节将讲述Delete
数据库组件 Hxj.Data (六)(删除操作篇)
上节讲述数据库更新操作,本节将讲述删除操作。 上代码:
//删除 条件 ProductID=2
int returnvalue = DbSession.Default.Delete
Delete很简单,只要加了条件就可以了。 与之等效的还有如下操作:
int returnvalue = DbSession.Default.Delete
这里的参数“2”等效于“Products._.ProductID == 2”,Products表的主键是ProductID,会自动去匹配。
这种情况对应条件是主键的时候可以使用。
19
还有一种方法:
Products p = DbSession.Default.From
就是传入一个实体,该方法会自动去查看主键条件,所以没有主键的实体切勿使用该方法,不然全表的数据都会删除。 删除也很简单,所以内容也少。 下一篇将讲述直接sql语句的执行。
数据库组件 Hxj.Data(七) (sql篇)
上一节讲述的是删除操作,本节将讲述如何直接执行sql语句。 直接执行sql语句是使用FromSql方法。
DbSession.Default.FromSql(\).ToDataTable();
这样看起来亲切多了吧,直接sql就可以执行。 当然也可添加参数的啊。
DbSession.Default.FromSql(\
productid=pid\).AddInParameter(\, 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 = \; parameters[0].Value = 1;
parameters[1] = DbSession.Default.Db.DbProviderFactory.CreateParameter(); parameters[1].DbType = DbType.Int32; parameters[1].ParameterName = \; parameters[1].Value = 2;
DbSession.Default.FromSql(\* from products where productid=pid or categoryid=cid\)
20