点击这里下载
一个 NHIBERNATE+GRIDVIEW 添加删除修改的例子(单表)
一个 NHIBERNATE+GRIDVIEW 添加删除修改的例子(单表)

aspx:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无标题页</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:ButtonID="btn_INSERT"runat="server"OnClick="btn_INSERT_Click"Text="INSERT"/><br/>
<asp:GridViewID="GridView1"runat="server"BackColor="White"BorderColor="#DEDFDE"BorderStyle="None"BorderWidth="1px"CellPadding="4"Font-Names="Arial"Font-Size="9pt"ForeColor="Black"GridLines="Vertical"OnRowDeleting="GridView1_RowDeleting"OnRowEditing="GridView1_RowEditing"OnRowUpdating="GridView1_RowUpdating"AutoGenerateColumns="False"DataKeyNames="ID"OnRowCancelingEdit="GridView1_RowCancelingEdit">
<FooterStyleBackColor="#CCCC99"/>
<RowStyleBackColor="#F7F7DE"/>
<SelectedRowStyleBackColor="#CE5D5A"Font-Bold="True"ForeColor="White"/>
<PagerStyleBackColor="#F7F7DE"ForeColor="Black"HorizontalAlign="Right"/>
<HeaderStyleBackColor="#6B696B"Font-Bold="True"ForeColor="White"/>
<AlternatingRowStyleBackColor="White"/>
<Columns>
<asp:BoundFieldDataField="UserID"HeaderText="UserID"/>
<asp:BoundFieldDataField="Message"HeaderText="Message"/>
<asp:BoundFieldDataField="CreateTime"HeaderText="CreateTime"ReadOnly="True"/>
<asp:CommandFieldCancelText="CANCEL"UpdateText="UPDATE"EditText="EDIT"DeleteText="DELETE"ShowDeleteButton="True"ShowEditButton="True"/>
</Columns>
</asp:GridView>

</div>
</form>
</body>
</html>

aspx.cs

usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Collections;

publicpartialclass_Default:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
SetBind();
}
}
privatevoidSetBind()
{
CUID.GuestMessageCUIDgm
=newCUID.GuestMessageCUID();
this.GridView1.DataSource=gm.GetGuestMessage();
this.GridView1.DataBind();
}
protectedvoidbtn_INSERT_Click(objectsender,EventArgse)
{
CUID.GuestMessageCUIDgm
=newCUID.GuestMessageCUID();
IListlist
=gm.GetGuestMessage();
list.Insert(
0,newDataEntity.GuestMessage());
this.GridView1.EditIndex=0;
this.GridView1.DataSource=list;
this.GridView1.DataBind();
}

protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
GridViewRowgvr
=this.GridView1.Rows[e.RowIndex];
objectAutoID=this.GridView1.DataKeys[e.RowIndex].Value;
DataEntity.GuestMessagegmentity
=newDataEntity.GuestMessage();
if(AutoID!=null)
{
gmentity.Id
=AutoID.ToString();
CUID.GuestMessageCUIDgm
=newCUID.GuestMessageCUID();
gm.DeleteGuestMessage(gmentity);
SetBind();
}

}

protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
{
this.GridView1.EditIndex=e.NewEditIndex;
SetBind();
}

protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse)
{
CUID.GuestMessageCUIDgm
=newCUID.GuestMessageCUID();
GridViewRowgvr
=this.GridView1.Rows[e.RowIndex];
TextBoxtbUserID
=gvr.Cells[0].Controls[0]asTextBox;
TextBoxtbMessage
=gvr.Cells[1].Controls[0]asTextBox;
objectAutoID=this.GridView1.DataKeys[e.RowIndex].Value;
DataEntity.GuestMessagegmentity
=newDataEntity.GuestMessage();
gmentity.UserID
=tbUserID.Text;
gmentity.Message
=tbMessage.Text;
if(AutoID==null)
{
gmentity.CreateTime
=DateTime.Now;
gm.AddGuestMessage(gmentity);
}
else
{
gmentity.Id
=AutoID.ToString();
gmentity.CreateTime
=DateTime.Parse(gvr.Cells[2].Text);
gm.UpdateGuestMessage(gmentity);
}
this.GridView1.EditIndex=-1;
SetBind();
}
protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse)
{
this.GridView1.EditIndex=-1;
SetBind();
}
}

cuid.cs

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Collections;
usingDataHelper;
usingSystem.Data;

namespaceCUID
{
publicclassGuestMessageCUID
{
privateEntityControlcontrol;

publicGuestMessageCUID()
{
control
=EntityControl.CreateEntityControl("DataEntity");
}

publicIListGetGuestMessage()
{
returncontrol.GetEntities("fromDataEntity.GuestMessage");
}

publicvoidAddGuestMessage(DataEntity.GuestMessagegm)
{
control.AddEntity(gm);
}

publicvoidUpdateGuestMessage(DataEntity.GuestMessagegm)
{
control.UpdateEntity(gm,gm.Id);
}

publicvoidDeleteGuestMessage(DataEntity.GuestMessagegm)
{
control.DeleteEntity(gm);
}
}
}

datahelper.cs

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Collections;
usingNHibernate;
usingNHibernate.Cfg;
usingSystem.Data;

namespaceDataHelper
{
publicclassSessionFactory
{
privatestaticISessionFactorysessions;
privatestaticConfigurationcfg;
staticreadonlyobjectpadlock=newobject();
publicstaticISessionOpenSession(stringAssemblyName)
{
if(sessions==null)
{
lock(padlock)
{
if(sessions==null)
{
BuildSessionFactory(AssemblyName);
}
}
}
returnsessions.OpenSession();
}

privatestaticvoidBuildSessionFactory(stringAssemblyName)
{
cfg
=newConfiguration();
cfg.AddAssembly(AssemblyName);
sessions
=cfg.BuildSessionFactory();
}
}

publicclassEntityControl
{
privatestaticEntityControlentity;
privatestring_AssemblyName;
staticreadonlyobjectpadlock=newobject();
publicstaticEntityControlCreateEntityControl(stringAssemblyName)
{
if(entity==null)
{
lock(padlock)
{
if(entity==null)
{
entity
=newEntityControl();
entity._AssemblyName
=AssemblyName;
}
}
}
returnentity;

}

publicvoidAddEntity(Objectentity)
{
ISessionsession
=SessionFactory.OpenSession(_AssemblyName);
ITransactiontransaction
=session.BeginTransaction();
try
{
session.Save(entity);
transaction.Commit();
}

catch(Exceptionex)
{
transaction.Rollback();
throwex;
}
finally
{
session.Close();
}
}

publicvoidUpdateEntity(Objectentity,Objectkey)
{
ISessionsession
=SessionFactory.OpenSession(_AssemblyName);
ITransactiontransaction
=session.BeginTransaction();
try
{
session.Update(entity);
transaction.Commit();
}
catch(Exceptionex)
{
transaction.Rollback();
throwex;
}
finally
{
session.Close();
}
}

publicvoidDeleteEntity(objectentity)
{
ISessionsession
=SessionFactory.OpenSession(_AssemblyName);
ITransactiontransaction
=session.BeginTransaction();
try
{
session.Delete(entity);
transaction.Commit();
}
catch(Exceptionex)
{
transaction.Rollback();
throwex;
}
finally
{
session.Close();
}
}

publicIListGetEntities(stringstrHQL)
{
IListlist;
ISessionsession
=SessionFactory.OpenSession(_AssemblyName);
list
=session.Find(strHQL);
session.Close();
returnlist;
}
}
}

实体

usingSystem;
usingSystem.Collections;

namespaceDataEntity
{
#regionGuestMessage

///<summary>
///GuestMessageobjectforNHibernatemappedtable'GuestMessage'.
///</summary>
publicclassGuestMessage
{
#regionMemberVariables

protectedstring_id;
protectedstring_userID;
protectedstring_message;
protectedDateTime_createTime;

#endregion

#regionConstructors

publicGuestMessage(){}

publicGuestMessage(stringuserID,stringmessage,DateTimecreateTime)
{
this._userID=userID;
this._message=message;
this._createTime=createTime;
}

#endregion

#regionPublicProperties

publicstringId
{
get{return_id;}
set
{
if(value!=null&&value.Length>50)
thrownewArgumentOutOfRangeException("InvalidvalueforId",value,value.ToString());
_id
=value;
}
}

publicstringUserID
{
get{return_userID;}
set
{
if(value!=null&&value.Length>50)
thrownewArgumentOutOfRangeException("InvalidvalueforUserID",value,value.ToString());
_userID
=value;
}
}

publicstringMessage
{
get{return_message;}
set
{
if(value!=null&&value.Length>16)
thrownewArgumentOutOfRangeException("InvalidvalueforMessage",value,value.ToString());
_message
=value;
}
}

publicDateTimeCreateTime
{
get{return_createTime;}
set{_createTime=value;}
}



#endregion
}
#endregion
}

实体xml

<?xmlversion="1.0"encoding="utf-8"?>
<hibernate-mappingxmlns="urn:nhibernate-mapping-2.0">
<classname="DataEntity.GuestMessage,DataEntity"table="GuestMessage">
<idname="Id"type="String"unsaved-value="null">
<columnname="AutoID"length="50"sql-type="varchar"not-null="true"unique="true"index="PK_Message"/>
<generatorclass="identity"/>
</id>
<propertyname="UserID"type="String">
<columnname="UserID"length="50"sql-type="varchar"not-null="false"/>
</property>
<propertyname="Message"type="String">
<columnname="Message"length="16"sql-type="text"not-null="false"/>
</property>
<propertyname="CreateTime"type="DateTime">
<columnname="CreateTime"length="8"sql-type="datetime"not-null="false"/>
</property>
</class>
</hibernate-mapping>

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-15
  • 2022-02-18
  • 2022-12-23
  • 2021-12-04
  • 2021-10-04
猜你喜欢
  • 2021-06-15
  • 2022-01-02
  • 2022-12-23
  • 2022-12-23
  • 2022-01-09
  • 2021-07-22
相关资源
相似解决方案