Spiga

NHibernate 做个小项目来试一下吧 六

2004-10-16 11:33 by 无心之柳.NET, 3488 visits, 网摘, 收藏, 编辑

BLL层也完成了,现在来做 界面吧,在添加一个新建ASP.Net Web应用程序的新建工程
现搞个 注册的页吧,

(图片上传上就成这个样子了

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
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 guestbook.BLL;
using guestbook.Dal;
using guestbook.data;

namespace guestbook.web
{
    
/// <summary>
    
/// Register 的摘要说明。
    
/// </summary>

    public class Register : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.TextBox txtUserName;
        
protected System.Web.UI.WebControls.TextBox txtEmail;
        
protected System.Web.UI.WebControls.Button Button1;
        
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
        
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
        
protected System.Web.UI.WebControls.RequiredFieldValidator valUN;
        
protected System.Web.UI.WebControls.TextBox txtPwd;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
        }


        
Web 窗体设计器生成的代码

        
private void Button1_Click(object sender, System.EventArgs e)
        
{
            
if(Page.IsValid)
            
{
                
string username=txtUserName.Text;
                
string Email=txtEmail.Text;
                
string pwd=txtPwd.Text;

                users newUser
=new users();
                newUser.Name
=username;
                newUser.email
=Email;
                newUser.password
=pwd;

                
if(!CreateAccount(newUser))
                
{
                    valUN.ErrorMessage
="用户名已被注册,请另选!";
                    valUN.IsValid
=false;
                }


            }


        }


        
private bool CreateAccount(users user)
        
{
            
try
            
{
                usersbll bll
=new usersbll();

                bll.UserAdd(user);

                HttpContext.Current.Session[
"AccountInfo"]=user;

                HttpContext.Current.Response.Redirect(
"Default.aspx",true);
            }

            
catch
            
{
                
return false;
            }

            
return true;
        }

    }

}


这个过程 总体来说比较顺利,但是在最后测试的时候 碰到了一点点问题 ,就是一开始,怎么也插入不了数据,后来才想起来,没有把NHibernate的配置复制到 web.config中去,晕啊,太粗心了我
还有一个要注意的就是,
  <configSections>
    
<section name="nhibernate" type= "System.Configuration.NameValueSectionHandler,System,Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  
</configSections>
上面这一节 一定要 放在 <configSection>标签下在, 放到其它位置 就会报错。OK继续




Creative Commons License
作品平波创作,采用知识共享署名 2.5 中国大陆许可协议进行许可。
0
0
(请您对文章做出评价)
« 上一篇:NHibernate 做个小项目来试一下吧 五
» 下一篇:NHibernate 做个小项目来试一下吧(数据分页) 七
Add your comment

6 条回复

  1. #1楼 rotchen[未注册用户]2004-12-11 17:00
    谁能发个Wallop邀请,多谢了!
    rotchen07@hotmail.com
      回复  引用    
  2. #2楼 zengdj[未注册用户]2006-03-15 11:00
    为什么在界面层还要引用DAL层的东西呢:using guestbook.Dal;界面层应该只需知道BLL层就够了吧,不应该跨层调用吧
      回复  引用    
  3. #3楼 super[未注册用户]2006-05-07 18:48
    能否把源码给我谢谢superghy@sohu.com
      回复  引用    
  4. #4楼 karlsoft      2006-05-25 11:21
    插入不了数据﹐把NHibernate的配置复制到 web.config中去,..........如何解決???????
      回复  引用  查看    
  5. #5楼 karlsoft      2006-05-25 11:58
    使用NHibernate在Web層在按鈕下實現這個﹐不能添加數據﹐請問什么原因﹐是不是配置文件有問題﹐在web.config中已經加了這個
    <configSections>
    <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />

    </configSections>
    也加了這個
    <nhibernate>
    <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
    <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
    <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect"/>
    <add key="hibernate.connection.connection_string" value="server=MIS03;uid=sa;pwd=;"/>
    </nhibernate>
    我的代碼碼如下﹕
    按鈕下實現如下:

    Configuration cfg = new Configuration();
    cfg.AddAssembly("GuestBook.Data");
    ISessionFactory f = cfg.BuildSessionFactory();
    ISession s = f.OpenSession();
    ITransaction t = s.BeginTransaction();
    Users newUser = new Users();
    newUser.Name = "papersnake";
    newUser.Password = "123456";
    newUser.Email = "you@hotmail.com";
    newUser.RegTime = DateTime.Now;
    s.Save(newUser);
    t.Commit();
    s.Close();
      回复  引用  查看    
  6. #6楼 笑疯[未注册用户]2007-03-04 19:06
    为什么在界面层还要引用DAL层的东西呢:using guestbook.Dal;界面层应该只需知道BLL层就够了吧,不应该跨层调用吧

    为什么要这样啊???
      回复  引用