以下面這張表為例,編寫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