天天看點

資料源ObjectDataSource的資料通路類的編寫

以下面這張表為例,編寫objectdatasource的操作類檔案;資料表結構如下:

資料源ObjectDataSource的資料通路類的編寫

其基本思路是:用user.cs類,包裝資料表的各個字段,将user的字段都聚合在一個user對象,然後增、删、改。

using system;

using system.data;

using system.configuration;

using system.web;

using system.web.security;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.webcontrols.webparts;

using system.web.ui.htmlcontrols;

using system.data.sqlclient;

using system.collections.generic;

public class users

{

private int _userid;

private string _username;

private string _userpwd;

public int userid

get { return this._userid; }

set { this._userid = value; }

}

public string username

get { return this._username; }

set { this._username = value; }

public string userpwd

get { return this._userpwd; }

set { this._userpwd = value; }

public users()

public users(int userid,string username,string userpwd)

this._userid = userid;

this._username = username;

this._userpwd = userpwd;

//用sqldatareader讀出資料庫資料來執行個體化user類。

public users(sqldatareader dr)

this._userid = convert.toint32(dr["userid"]);

this._username = dr["username"].tostring();

this._userpwd = dr["userpwd"].tostring();

//添加使用者;

public static bool adduser(users singleuser)

bool flage=false;

string procname = "dbo.adduser";

sqlparameter[] prams ={

new sqlparameter("@username",sqldbtype.varchar,50),

new sqlparameter("@userpwd",sqldbtype.varchar,100)};

prams[0].value = singleuser.username;

prams[1].value = singleuser.userpwd;

int intresult = database.runexecute(procname, prams);

if(intresult>0)

flage = true;

return flage;

//删除使用者;

public static bool deleteuser(users singleuser)

bool flage = false;

string procname = "dbo.deleteuser";

sqlparameter[] prams ={new sqlparameter("@userid",sqldbtype.int)};

prams[0].value = singleuser.userid;

if (intresult > 0)

/*對應存儲過程

*alter procedure dbo.deleteuser

(

@userid int

)

as

delete from users where userid=@userid

return

*/

//更新使用者;

public static bool updateuser(users singleuser)

string procname = "dbo.updateuser";

sqlparameter[] prams ={new sqlparameter("@userid",sqldbtype.int),

prams[1].value = singleuser.username;

prams[2].value = singleuser.userpwd;

* alter procedure dbo.updateuser

@userid int,

@username varchar(50),

@userpwd varchar(100)

update users set username=@username,userpwd=@userpwd where userid=@userid

//更改密碼;

public static bool changepwd(int userid,string userpwd)

string procname = "dbo.changepwd";

prams[0].value = userid;

prams[1].value = userpwd;

* alter procedure dbo.changepwd

update users set userpwd=@userpwd where userid=@userid

//驗證使用者;

public static bool validateuser(string username,string userpwd)

string procname = "dbo.validateuse";

sqlparameter[] prams ={new sqlparameter("@username",sqldbtype.varchar,50),

prams[0].value = username;

int intresult = database.runexecutescalar(procname, prams);

/*alter procedure dbo.validateuse

select count(*) from users where username=@username and userpwd=@userpwd

//檢驗使用者是否存在;

public static bool isvalidateusername(string username)

string procname = "dbo.isvalidateusername";

sqlparameter[] prams ={new sqlparameter("@username",sqldbtype.varchar,50)};

* alter procedure dbo.isvalidateusername

@username varchar(50)

select count(*) from users where username=@username

//得到所有使用者資訊(用來綁定到objectdatasource的selectmethod方法)

public list<users> getallusers()

list<users> allusers = new list<users>();

string procname = "dbo.getallusers";

sqldatareader dr = database.runprocgetreader(procname);

while(dr.read())

allusers.add(new users(dr));

dr.close();

return allusers;

//對應存儲過程:

/* alter procedure dbo.getallusers

select * from users

return*/

public static string getusernamebyuserid(int userid)

string strusername = string.empty;

string procname = "dbo.getusernamebyuserid";

sqldatareader dr = database.runprocgetreader(procname,prams);

while (dr.read())

strusername = dr["username"].tostring();

return strusername;

* alter procedure dbo.getusernamebyuserid

select username from users where userid=@userid

public static int getuseridbyusername(string username)

int userid = 0;

string procname = "dbo.getuseridbyusername";

sqlparameter[] prams ={ new sqlparameter("@username", sqldbtype.varchar,50) };

userid = convert.toint32(dr["userid"]);

return userid;

* alter procedure dbo.getuseridbyusername

select userid from users where username=@username

public static users getuserbyuserid(int userid)

users singleuser = new users();

string procname = "dbo.getuserbyuserid";

sqlparameter[] prams ={ new sqlparameter("@userid", sqldbtype.int) };

singleuser =new users(dr);

return singleuser;

alter procedure dbo.getuserbyuserid

select * from users where userid=@userid