zoukankan      html  css  js  c++  java
  • Nhibernate学习教程二 实际表的增删操作

    上一个例子是一个简单表的插入数据。

    在实际中很多表都是使用Id int来做自增量来实现的。

    Users结构是

    USE [test]
    GO
    /****** 对象:  Table [dbo].[Users]    脚本日期: 09/17/2008 21:51:20 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Users](
        
    [Name] [nvarchar](40) COLLATE Chinese_PRC_CI_AS NULL,
        
    [Password] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,
        
    [EmailAddress] [nvarchar](40) COLLATE Chinese_PRC_CI_AS NULL,
        
    [LastLogon] [datetime] NULL,
        
    [Id] [int] IDENTITY(1,1NOT NULL
    ON [PRIMARY]

    User.cs

    public class User
        
    {
            
            
    private string userName;
            
    private string password;
            
    private string emailAddress;
            
    private DateTime lastLogon;
            
    private System.Int32 id;

            
    public User()
            
    {
            }


            
            
    public System.Int32 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; }
            }


            
    public DateTime LastLogon
            
    {
                
    get return lastLogon; }
                
    set { lastLogon = value; }
            }


        }

     User.hbm.xml

    用的是自动编号,所以,要将 <generator class="assigned" />改为  <generator class="identity"" />

    Code
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
        
    <class name="Nhibernate1.User, Nhibernate1" table="users" lazy="false">
        
    <id name="Id" column="Id" type="Int32">
          
    <generator class="identity" />
        
    </id>
        
    <property name="UserName" column="Name" type="String" length="40"/>
            
    <property name="Password" type="String" length="20"/>
            
    <property name="EmailAddress" type="String" length="40"/>
            
    <property name="LastLogon" type="DateTime"/>
        
    </class>
    </hibernate-mapping>

     cs

    Code

    添加时候不写入id的属性,因为数据库已经自动增加。

     删除代码如下

     private void del_Click(object sender, EventArgs e)
            {
                Configuration cfg = new Configuration();
                cfg.AddAssembly("ClassLibrary");

                ISessionFactory factory = cfg.BuildSessionFactory();
                ISession session = factory.OpenSession();
                ITransaction transaction = session.BeginTransaction();

                User newUser = (User)session.Load(typeof(User), 2);
              

                // Tell NHibernate that this object should be saved
                session.Delete(newUser);

                // commit all of the changes to the DB and close the ISession
                transaction.Commit();
                session.Close();

                MessageBox.Show("OK!");
            }

    选择数据并绑定DataGridView

     Configuration cfg = new Configuration();
                cfg.AddAssembly("Nhibernate1");

                ISessionFactory factory = cfg.BuildSessionFactory();
                ISession session = factory.OpenSession();
                ITransaction transaction = session.BeginTransaction();
                myds=new DataSet();
                System.Collections.IList list = session.CreateQuery("select u from User as u").List();
               
                this.dataGridView1.DataSource = list;
              

                session.Close();

                MessageBox.Show("OK!");

  • 相关阅读:
    2017-2018-1 团队名称 第一周 作业
    20162307 2017-2018-1 《程序设计与数据结构》第3周学习总结
    20162307 2017-2018-1 《程序设计与数据结构》第1周学习总结
    20161207 结对编程-马尔可夫链-自动生成短文
    20162307 2016-2017-2《程序设计与数据结构》课程总结
    20162307 实验五 网络编程与安全
    20162307 结对编程-四则运算(挑战出题)
    20162306 2016-2017-2《程序设计与数据结构》课程总结
    实验五 网络编程与安全实验报告 20162306陈是奇
    实验补充
  • 原文地址:https://www.cnblogs.com/meetweb/p/1292878.html
Copyright © 2011-2022 走看看