NHibernate - HQL - 添加和更改

添加:

 1         /// <summary>
 2         /// 等待乙方做出回应 A
 3         /// </summary>
 4         private void button2_Click_1(object sender, EventArgs e)
 5         {
 6             //使用NHibernate,进行存储
 7             Chinfo c = new Chinfo();
 8
 9             c.CtinfoId = ID;
10             c.Goodsinfo = "白玉手镯";
11             c.Buyersinfo = "甲方";
12             c.Sellerinfo = "乙方";
13             c.Infocreatetime = DateTime.Now;//字段Infocreatetime是DateTime类型,所以此处不能ToString.
14             c.Currentgoodsstate = "A";
15             c.Goodsflow = "1000000";
16             c.Goodsflownowtime = DateTime.Now.ToString();
17             c.CourierId = "234235245";
18
19             try
20             {
21                 NHelper.Session().Save(c);
22                 NHelper.Trans().Commit();
23                 MessageBox.Show("保存成功!", "提示");
24             }
25             catch (Exception ex)
26             {
27                 MessageBox.Show(ex.Message, "提示");
28             }
29
30             this.btn_A.Enabled = false;//禁用A
31             this.btn_B.Enabled = true;//开启B
32             this.btn_C.Enabled = true;//开启C
33         }

修改:

 1         /// <summary>
 2         /// 乙方已同意请求 等待公司做出回应 B 1100000
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void button3_Click(object sender, EventArgs e)
 7         {
 8             try
 9             {
10                 IQuery query = NHelper.Session().CreateQuery("from Chinfo c where c.CtinfoId = ?");
11
12                 query.SetParameter(0, ID);
13
14                 IList<Chinfo> list = query.List<Chinfo>();
15
16                 list[0].Currentgoodsstate = "B";
17                 list[0].Goodsflow = "1100000";
18                 list[0].Goodsflownowtime = list[0].Goodsflownowtime + "-" +  DateTime.Now.ToString();
19
20                 NHelper.Session().Update(list[0]);
21
22                 NHelper.Trans().Commit();
23
24                 MessageBox.Show("修改成功!", "提示");
25             }
26             catch (Exception ex)
27             {
28                 MessageBox.Show(ex.Message, "提示");
29             }
30
31             this.btn_B.Enabled = false;//禁用B
32             this.btn_C.Enabled = false;//禁用C
33             this.btn_D.Enabled = true;//开启D
34             this.btn_E.Enabled = true;//开启E
35         }

NHelper.cs代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using NHibernate;
 7 using NHibernate.Cfg;
 8
 9 namespace Changing
10 {
11     public static class NHelper
12     {
13         //变量声明
14         static ISession session = null;
15         static ISessionFactory factory = null;
16         static ITransaction trans = null;
17
18         //读取配置文件
19         static Configuration cfg = new Configuration().Configure(@"Config/NHibernate.cfg.xml");
20
21         /// <summary>
22         /// 创建Session工厂
23         /// </summary>
24         /// <returns></returns>
25         public static ISessionFactory Factory()
26         {
27             return factory = cfg.BuildSessionFactory();
28         }
29
30         /// <summary>
31         /// 创建Session
32         /// </summary>
33         /// <returns></returns>
34         public static ISession Session()
35         {
36             return session = Factory().OpenSession();
37         }
38
39         /// <summary>
40         /// 创建事务
41         /// </summary>
42         /// <returns></returns>
43         public static ITransaction Trans()
44         {
45             trans = session.BeginTransaction();
46
47             return trans;
48         }
49     }
50 }
时间: 2024-08-30 17:22:05

NHibernate - HQL - 添加和更改的相关文章

NHibernate动态添加表

NHibernate动态添加表 设置和动态扩展表差不多,添加了一个模板hbm.xml文件,用于创建动态hbm.xml,HibernateUtil无改动. MappingManger添加了两个方法 1 public static void UpdateClassMapping(DynamicTestModel dynamicModel) 2 { 3 var session = HibernateUtil.Instance.CurrentSession; 4 var fileName = "hbm_

[NHibernate]HQL查询

目录 写在前面 文档与系列文章 查询的几种方式 HQL查询 一个例子 总结 写在前面 上篇文章介绍了nhibernate在项目中的基本配置,包括数据库连接字符串的设置,映射文件的配置及需注意的地方,这篇文章将介绍nhibernate的查询方法. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate]O/R Mapping基础 [NHiberna

NHibernate -- HQL

使用NHibernate中的HQL来查询数据. 代码: 1 /// <summary> 2 /// 查找事件 3 /// </summary> 4 private void btn_Select_Click(object sender, EventArgs e) 5 { 6 7 } 1.查询,且是使用参数: 1 //**** 查询 ***** 2 IQuery query = session.CreateQuery("from Person p where p.Id =

Nhibernate HQL 匿名类(严格说是map的使用以及构造函数的使用

1.map的使用 var hql=string.Format(@"select new map( tc.LimitIndexType as LimitIndexType, tc.LimitScope as LimitScope, tb.Id as Id ) from BasLimitConfig tb,BasProductGroup ta ,BasLimitType tc where tb.LimitDim1Id =ta.Id and tb.LimitDim2Id = tc.Id ")

NHibernate系列文章二十二:NHibernate查询之HQL查询(附程序下载)

摘要 NHibernate提供了多种查询方式,最早的HQL语言查询.Criteria查询和SQL Query,到NHibernate 3.0的Linq NHibernate,NHIbernate 4.0又添加了Query Over.每种方式各有优缺点,任何一个SQL查询可以使用任何查询方式查询.根据程序员每种方式掌握的情况,可以使用不同的查询方式.本篇文章介绍HQL语言查询.HQL(Hibernate Query Language)是NHibernate特有的面向对象查询语言,他具有继承.多态的

[NHibernate]一对多关系(级联删除,级联添加)

目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及,比如一个客户可以有一个或者多个订单,在数据库中变现为“主外键关系”,有时也喜欢称为“父子关系”.那么就让我们一起学习,在nhibernate中,是如何处理这种关系的吧? 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernat

[NHibernate]代码生成器的使用

目录 写在前面 文档与系列文章 代码生成器的使用 总结 写在前面 前面的文章介绍了nhibernate的相关知识,都是自己手敲的代码,有时候显得特别的麻烦,比如你必须编写持久化类,映射文件等等,举得例子比较简单,字段比较少,如果一个数据表有几十个字段,你手敲的话烦都烦死了,不过为了学习nhibernate的语法,初学的过程还是建议自己动手,这样敲的多了就对每个过程,及映射文件中的节点的含义有个大致印象.前面举的例子,你也会发现这种方式的步骤就是首先创建数据库,然后编写持久化类,映射文件,最后编写

[NHibernate]并发控制

目录 写在前面 文档与系列文章 并发控制 乐观并发控制(Optimistic Concurrency) 一个例子 悲观并发控制(Pessimistic Concurrency) 总结 写在前面 上篇文章介绍了nhibernate中的事务,在增删改查中使用的必要性.本篇文章将介绍nhibernate中的并发控制.对多人同时修改同一条数据,如何进行并发控制,在nhibernate中提供了一些方法来实现乐观并发控制. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISess

[NHibernate]存储过程的使用(三)

目录 写在前面 文档与系列文章 查询 总结 写在前面 前面的文章介绍了在nhibernate中使用存储过程进行增删改的操作,当然查询也是可以的,在nhibernate中也可以执行任意的存储过程.本篇文章将介绍如何使用查询的存储过程的方式. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate]O/R Mapping基础 [NHibernate]