惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
L
LangChain Blog
GbyAI
GbyAI
F
Fortinet All Blogs
腾讯CDC
Last Week in AI
Last Week in AI
A
About on SuperTechFans
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
B
Blog
D
Docker
G
Google Developers Blog
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
U
Unit 42
Blog — PlanetScale
Blog — PlanetScale
B
Blog RSS Feed

博客园 - Loviy.Net

从今天开始博客重新开张啦 [cnforums1.2代码学习]4、关于论坛配置的序列化和反序列化做法 [cnforums1.2代码学习]2、关于论坛的页面结构 - Loviy.Net - 博客园 [cnforums1.2代码学习]1、论坛的整体结构 XSL的运算符 XSL学习四 - xsl:choose 学习XSL - xsl:if 学习XSL二 - 学习XSL一 学习委托 客户短保存信息(cookie) SQL常用命令使用方法 Sql Server基本函数 常用SQL语句 WebLogic表格对象 Jsp通过JDBC连接SQL数据库 经典的鱼和水的对白 用样式定义打印1px表格 女孩子的心思真的难以琢磨
[cnforums1.2代码学习]3、论坛的数据库操作流程 - Loviy.Net ...
Loviy.Net · 2005-06-30 · via 博客园 - Loviy.Net

今天我们来看一下论坛操作数据库的一个整体流程,我们先以注册用户为例
首先,我们通过页面找到注册的页面 User/CreateUser.aspx ,其中使用了<Forums:CreateUser id="CreateUser1" runat="server" />控件
然后,我们在Controls的项目中找 User/CreateUser.cs 文件,
通过 string skinFilename = "Skin-CreateNewAccount.ascx" 可以看出这个控件的界面是通过加载Skin-CreateNewAccount.ascx这个用户控件来
生成的。
接着在 User/CreateUser.cs 文件中定义了 控件类,使用来存放页面中的控件。
在该类的InitializeSkin方法中就是将用户控件中的控件取出来赋刚刚定义的控件类,同时,附加按钮的点击事件。

接着,处理按钮的点击事件 CreateUser_Click,在这个方法中,现将页面中的控件的值赋给 user 对象的各个属性
其中也有些根据用户注册方面的一个配置来赋值。

接着,调用 Users 类的 Users.Create(user, true) ,在这个方面验证注册的用户名是否正确,并对密码根据配置方式来加密,
其中最后调用 dp.CreateUpdateDeleteUser(user, DataProviderAction.Create, out status),其中dp是ForumsDataProvider的
一个实例,但是ForumsDataProvider是一个抽象类,那么,这个dp到底真正是哪个类的实例呢?应该是一个类继承了ForumsDataProvider。

在 Users 类中 在生成 dp的时候代码如下:
ForumsDataProvider dp = ForumsDataProvider.Instance();
我们接着看ForumsDataProvider.Instance()方法,这个方法会根据Web.Conig中forums/forums/providers中定义好的类型来实例化该类,
在这个系统中,这里定义的是AspNetForums.Data.SqlDataProvider,我们到AspNetForums.SqlDataProvider项目中看该类确实是继承自ForumsDataProvider,

最后,就是很普通的通过存储过程来更新数据。

他为什么这样做,其实是有灵活性的,这样可以通过配置文件来配置我的数据访问类是哪个,这样我们可以写适合其它数据库的类,这样该系统就
可以兼容多数据库系统了。