Database base class
Using system;
Using system. Data;
Using system. Data. sqlclient;
Namespace haisky. htjob
{
/// <Summary>
/// Summary of dbclass.
/// </Summary>
Public class dbclass
{
Private string connectionstring;
Protected sqlconnection connection;
Public dbclass (string newconnectionstring)
{
Connectionstring = newconnectionstring;
Connection = new sqlconnection (connectionstring );
}
Public String connectionstring
{
Get
{
Return connectionstring;
}
}
Private sqlcommand buildquerycommand (string storedprocname, idataparameter [] parameters)
{
Sqlcommand command = new sqlcommand (storedprocname, connection );
Command. commandtype = commandtype. storedprocedure;
Foreach (sqlparameter parameter in parameters)
{
Command. Parameters. Add (parameter );
}
Return command;
}
Private sqlcommand buildintcommand (string storedprocname, idataparameter [] parameters)
{
Sqlcommand command = buildquerycommand (storedprocname, parameters );
Command. Parameters. Add (New sqlparameter ("returnvalue", sqldbtype. Int, 4,
Parameterdirection. returnvalue, false,
0,
0,
String. Empty, datarowversion. Default, null ));
Return command;
}
Protected int runprocedure (string storedprocname, idataparameter [] parameters, out int rowsaffected)
{
Int result;
Connection. open ();
Sqlcommand command = buildintcommand (storedprocname, parameters );
Rowsaffected = command. executenonquery ();
Result = (INT) command. Parameters ["returnvalue"]. value;
Connection. Close ();
Return result;
}
Protected sqldatareader runprocedure (string storedprocname, idataparameter [] parameters)
{
Sqldatareader returnreader;
Connection. open ();
Sqlcommand command = buildquerycommand (storedprocname, parameters );
Command. commandtype = commandtype. storedprocedure;
Returnreader = command. executereader ();
Return returnreader;
}
Protected dataset runprocedure (string storedprocname, idataparameter [] parameters, string tablename)
{
Dataset dataset = new dataset ();
Connection. open ();
Sqldataadapter sqlda = new sqldataadapter ();
Sqlda. selectcommand = buildquerycommand (storedprocname, parameters );
Sqlda. Fill (dataset, tablename );
Connection. Close ();
Return dataset;
}
Protected void runprocedure (string storedprocname, idataparameter [] parameters, dataset, string tablename)
{
Connection. open ();
Sqldataadapter sqlda = new sqldataadapter ();
Sqlda. selectcommand = buildintcommand (storedprocname, parameters );
Sqlda. Fill (dataset, tablename );
Connection. Close ();
}
}
}
Business layer base class (logical layer)
Using system;
Namespace wrox. webmodules. Business
{
Public class bizobject
{
Public bizobject ()
{}
}
}
The following is an example of a three-tier architecture developed by the user registration system: the database base class uses Code .
1. Data Layer Development of the user registration module:
Using system;
Using system. Data;
Using system. Data. sqlclient;
Using haisky. htjob;
Using system. xml;
Namespace haisky. htjob. Accounts. accountsdata
{
Public class user: haisky. htjob. haiskydbobject
{
Public user (string newconnectionstring): Base (newconnectionstring)
{// Direct route connection string}
Public int create (string user_nm, string user_pwd)
{
Int rowsaffected;
Sqlparameter [] parameters = {New sqlparameter ("@ user_nm", sqldbtype. Char, 16 ),
New
Sqlparameter ("@ user_pwd", sqldbtype. Char, 16 )};
Parameters [0]. value = user_nm;
Parameters [1]. value = user_pwd;
Parameters [2]. Direction = parameterdirection. output;
Try
{
Runprocedure ("if_user_info", parameters, out rowsaffected );
}
Catch
{}
Return (INT) parameters [2]. value;
}
}
}
2. User Registration business layer development:
Using system;
Using system. configuration;
Using haisky. htjob. Accounts. accountsdata;
Namespace haisky. htjob. Accounts. accountbusiness
{
Public class user: haisky. htjob. haiskybizobject
{
Int userid;
String username;
String userpwd;
String strconn;
Public user ()
{
Strconn = configurationsettings. configurettings ["strconn"];
}
Public int careate ()
{
Accountsdata. User datauser = new accountsdata. User (strconn );
Userid = datauser. Create (username, userpwd );
Return userid;
}
Public int userid
{
Get
{
Return userid;
}
Set
{
Userid = value;
}
}
Public String Username
{
Get
{
Return username;
}
Set
{
Username = value;
}
}
Public String userpwd
{
Get
{
Return userpwd;
}
Set
{
Userpwd = value;
}
}
}
}
3. User Registration presentation layer development:
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 haisky. htjob. Accounts. accountbusiness;
Namespace haisky. htjob. modules. Accounts
{
Public class register: system. Web. UI. Page
{
Protected system. Web. UI. webcontrols. textbox textbox1;
Protected system. Web. UI. webcontrols. textbox textbox2;
Protected system. Web. UI. webcontrols. Table Table1;
Protected system. Web. UI. webcontrols. Button button1;
Private void page_load (Object sender, system. eventargs E)
{
Table1.rows [0]. cells [0]. Visible = false;
}
# Region web form designer generated code
Override protected void oninit (eventargs E)
{
Initializecomponent ();
Base. oninit (E );
}
Private void initializecomponent ()
{
This. button1.click + = new system. eventhandler (this. button#click );
This. Load + = new system. eventhandler (this. page_load );
}
# Endregion
Private void button#click (Object sender, system. eventargs E)
{
Int I;
Htjob. Accounts. accountbusiness. User businessuser = new htjob. Accounts. accountbusiness. User ();
Businessuser. Username = textbox1.text;
Businessuser. userpwd = textbox2.text;
I = businessuser. careate ();
Response. Write (I. tostring (); // the return value is output here.
}
}
}
4. stored procedure called by the system:
Create procedure if_user_info
(@ User_nm char (16), @ user_pwd char (16), @ user_id int output)
As
Insert user_info (user_nm, user_pwd) values (@ user_nm, @ user_pwd)
Set @ user_id = @ identity
If @ error> 0
Begin
Raiserror ('insert of article failed', 16, 1)
Return 99
End
Go
======================================
Trackback: http://tb.blog.csdn.net/TrackBack.aspx? Postid = 529276