NHibernate中的数据添加问题 急。。

2024-12-05 08:58:22
推荐回答(1个)
回答(1):

一、创建数据库数据库名:Nhibernate
use NHibernate
go
CREATE TABLE users (
LogonID nvarchar(20) NOT NULL default '0',
Name nvarchar(40) default NULL,
Password nvarchar(20) default NULL,
EmailAddress nvarchar(40) default NULL,
PRIMARY KEY (LogonID)
)
go数据表:users 二、总体介绍项目名:WebNhibernate界面:WebForm.aspx具体表现文件:WebForm.aspx.cs实体类文件:EntityClass.cs映射文件:Userhbm.xml配置文件:Web.config 三、创建Web界面类型对象名Text属性值LabelLabel1ID:LabelLabel2姓名:LabelLabel3密码:LabelLabel4Email:LabelLabmessage TextBoxTxtId TextBoxTxtName TextBoxTxtPassword TextBoxTxtEmail ButtonButSave添加ButtonButDel删除ButtonButUpdata修改 四、创建映射文件(xml文件)和实体类实体类using System;namespace WebNhibernate{ public class EntityClass { private string id; private string userName; private string password; private string emailAddress; public EntityClass() {} public string Id { get { return id; } set { id = value; } } public string UserName { get { return userName; } set { userName = value; } } public string Password { get { return password; } set { password = value; } } public string EmailAddress { get { return emailAddress; } set { emailAddress = value; } } }}映射文件: 注意点:1. WebNhibernate.EntityClass代表:实体类名 WebNhibernate代表:该项目的装配集名称 Users代表:数据表名2.当属性列表中既有name和column说明实体层的属性与数据表的字段名不同名3.指定一个id, 在数据表中就是主键, 这个非常重要,nhibernate就是通过id来判断对象的唯一性的. 五、在配置文件中添加配置内容1.首先在配置文件的代码下面添加如下代码

这一段代码是必须要的2.在配置文件的代码下面添加如下代码 六、实现代码
首先在文件头添加代码
using NHibernate;
using NHibernate.Cfg;
1.添加数据:双击“添加“按钮 private void ButSave_Click(object sender, System.EventArgs e) { mCfg=new Configuration();//创建配置类 mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml"));//指明映射文件Userhbm.xml EntityClass vEntity=new EntityClass(); vEntity.Id=TxtId.Text; vEntity.UserName=TxtName.Text; vEntity.Password=TxtPassword.Text; vEntity.EmailAddress=TxtEmail.Text; ISession vSession= mCfg.BuildSessionFactory().OpenSession();//创建会话工厂, 一般来说应该使用一个单例对象来封装会话工厂. ITransaction vTransaction = vSession.BeginTransaction();//创建事物处理 try { vSession.Save(vEntity);//向数据库添加数据 vTransaction.Commit(); Labmessage.Text="OK"; } catch(Exception ex) { vTransaction.Rollback(); Labmessage.Text="Error"+ex.ToString(); } finally { vSession.Close(); } }