⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webform.aspx.cs

📁 可以实现简单的bhibernate对数据的添加
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Connection;
using NHibernate.Expression;
using NHibernate.Cache;
using NHibernate.Collection;
using NHibernate.SqlCommand;
using NHibernate.Engine;//ISessionFactoryImplementor
namespace WebNhibernate
{
	/// <summary>
	/// WebForm1 的摘要说明。
	/// </summary>
	public class WebForm1 : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.Label Label4;
		protected System.Web.UI.WebControls.TextBox TxtId;
		protected System.Web.UI.WebControls.TextBox TxtName;
		protected System.Web.UI.WebControls.TextBox TxtPassword;
		protected System.Web.UI.WebControls.TextBox TxtEmail;
		protected System.Web.UI.WebControls.Button ButSave;
		protected System.Web.UI.WebControls.Button ButDel;
		protected System.Web.UI.WebControls.Label Labmessage;
		protected System.Web.UI.WebControls.DataGrid DataGrid1;
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.WebControls.ListBox lbMsg;
		protected System.Web.UI.WebControls.Button ButUpdate;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			//this.a();

			
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.ButSave.Click += new System.EventHandler(this.ButSave_Click);
			this.ButDel.Click += new System.EventHandler(this.ButDel_Click);
			this.ButUpdate.Click += new System.EventHandler(this.ButUpdate_Click);
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion
		
		SqlConnection conn=null;
		public IList ExecuteSQL( string query ) 
		{
			IList result = new ArrayList();

			ISessionFactoryImplementor s =(ISessionFactoryImplementor)cfg.BuildSessionFactory();
			
			IDbCommand cmd = s.ConnectionProvider.Driver.CreateCommand();
			cmd.CommandText = query;

			IDbConnection conn = s.OpenConnection();
			try 
			{
				cmd.Connection = conn;
				IDataReader rs = cmd.ExecuteReader();

				while ( rs.Read() ) 
				{
					int fieldCount = rs.FieldCount;
					object[] values = new Object[ fieldCount ];
					for ( int i = 0; i < fieldCount; i ++ )
						values[i] = rs.GetValue(i);
					result.Add( values );
				}
			}
			finally 
			{
				s.CloseConnection(conn);
			}

			return result;
		}

		private void ButSave_Click(object sender, System.EventArgs e)
		{
			Configuration mCfg=new Configuration();//创建配置类 

			mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml"));//指明映射文件Userhbm.xml 
			//ISessionFactoryImplementor s =(ISessionFactoryImplementor)cfg.BuildSessionFactory();
			EntityClass vEntity=new EntityClass(); 

			vEntity.Id=TxtId.Text; 

			vEntity.UserName=TxtName.Text; 

			vEntity.Password=TxtPassword.Text; 

			vEntity.EmailAddress=TxtEmail.Text; 
			
			//IDbConnection conn=
			/*conn=new SqlConnection();
			conn.ConnectionString=(string)ConfigurationSettingsAppSettings["ConnectionString"];
			conn.Open();*/
			//conn=new SqlConnection(NHibernate.Connection.);
			ISessionFactory factory=mCfg.BuildSessionFactory();
			ISession vSession=factory.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(); 

			} 
		}

		private void ButDel_Click(object sender, System.EventArgs e)
		{
			 //System.Data.SqlClient.SqlConnection sqlcon=new SqlConnection("server=.;uid=sa;pwd=sa;database=NHibernate;");
			Configuration mCfg=new Configuration(); 

			mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml")); 

			ISession vSession= mCfg.BuildSessionFactory().OpenSession(); 

			ITransaction vTransaction = vSession.BeginTransaction(); 

			try 

			{ 

				EntityClass vEntity=(EntityClass) vSession.Load(typeof(EntityClass),TxtId.Text);//查找数据表中所要记录 

				vSession.Delete(vEntity);//向数据库删除数据 

				vTransaction.Commit(); 

				Labmessage.Text="OK"; 

			} 

			catch(Exception ex) 

			{ 

				vTransaction.Rollback(); 

				Labmessage.Text="Error"; 

			} 

			finally 

			{ 

				vSession.Close(); 

			} 
	
		}

		private void ButUpdate_Click(object sender, System.EventArgs e)
		{
			Configuration mCfg=new Configuration(); 

			mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml")); 

			ISession vSession= mCfg.BuildSessionFactory().OpenSession(); 

			ITransaction vTransaction = vSession.BeginTransaction(); 

			try 

			{ 

				EntityClass vEntity=(EntityClass) vSession.Load(typeof(EntityClass),TxtId.Text); 

				vEntity.UserName=TxtName.Text; 

				vEntity.Password=TxtPassword.Text; 

				vEntity.EmailAddress=TxtEmail.Text; 

				vSession.Update(vEntity); //向数据库修改数据 

				vTransaction.Commit(); 

				Labmessage.Text="OK"; 

			} 

			catch(Exception ex) 

			{ 

				vTransaction.Rollback(); 

				Labmessage.Text="Error"; 

			} 

			finally 

			{ 

				vSession.Close(); 

			} 

		}
		/*public void a()
		{
			Configuration mCfg=new Configuration(); 

			mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("messages.xml")); 

			ISession vSession= mCfg.BuildSessionFactory().OpenSession(); 

			ITransaction vTransaction = vSession.BeginTransaction(); 
			IList list=vSession.CreateQuery("from message").List();
			this.DataGrid1.DataSource=list;
		}*/

		private void Button1_Click(object sender, System.EventArgs e)
		{
//			try
//			{
				//Configuration mCfg=new Configuration(); 
				//mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("Userhbm.xml")); 
				//ISession vSession= mCfg.BuildSessionFactory().OpenSession(); 
//			
//				ICriteria criteria=vSession.CreateCriteria(typeof(EntityClass));

//				criteria.Add(Expression.Eq("LogonID","1"));//Expression支持多种查询
//				this.Labmessage.Text="ok";
//				vSession.Close();   // SQL	
				/*IQuery query=vSession.CreateQuery(this.TxtId.Text.Trim());
				this.DataGrid1.DataSource=null;
				this.DataGrid1.DataSource=query.List();      // HQL*/
//			}
//			catch (Exception ex)
//
//			{
//
//				this.Labmessage.Text=ex.Message;
//
//			}


			
			  Configuration mCfg=new Configuration(); 

			mCfg.AddXmlFile (System.Web.HttpContext.Current.Server.MapPath("messages.xml")); 

			ISession vSession= mCfg.BuildSessionFactory().OpenSession(); 
			ITransaction vTransaction = vSession.BeginTransaction(); 
			IList messages = vSession.CreateCriteria(typeof(Messages)).List();
			
		//	IList messages = vSession.CreateCriteria(typeof()).List();
//			this.lbMsg.Items.Clear();
//
			//foreach(Messages msg in messages)

				//this.lbMsg.Items.Add(msg);
			for(int i=0;i< messages.Count;i++)
			{
				Messages msg=new Messages();
			  
				msg=(Messages)messages[i];
				string aa=msg.Id;
				this.lbMsg.Items.Add(aa);

			}
				
					//this.Label1.Text="msg";
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -