閱讀851 返回首頁    go 阿裏雲 go 技術社區[雲棲]


數據源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; int intResult = DataBase.RunExecute(procname, prams); if (intResult > 0) { Flage = true; } return Flage; /*對應存儲過程 *ALTER PROCEDURE dbo.DeleteUser ( @UserId int ) AS delete from Users where UserId=@UserId RETURN */ } //更新用戶; public static bool UpdateUser(Users singleUser) { bool Flage = false; string procname = "dbo.UpdateUser"; SqlParameter[] prams ={new SqlParameter("@UserId",SqlDbType.Int), new SqlParameter("@UserName",SqlDbType.VarChar,50), new SqlParameter("@UserPwd",SqlDbType.VarChar,100)}; prams[0].Value = singleUser.UserId; prams[1].Value = singleUser.UserName; prams[2].Value = singleUser.UserPwd; int intResult = DataBase.RunExecute(procname, prams); if (intResult > 0) { Flage = true; } return Flage; /*對應存儲過程 * ALTER PROCEDURE dbo.UpdateUser ( @UserId int, @UserName varchar(50), @UserPwd varchar(100) ) AS update Users set UserName=@UserName,UserPwd=@UserPwd where UserId=@UserId RETURN */ } //更改密碼; public static bool ChangePwd(int UserId,string UserPwd) { bool Flage = false; string procname = "dbo.ChangePwd"; SqlParameter[] prams ={new SqlParameter("@UserId",SqlDbType.Int), new SqlParameter("@UserPwd",SqlDbType.VarChar,100)}; prams[0].Value = UserId; prams[1].Value = UserPwd; int intResult = DataBase.RunExecute(procname, prams); if (intResult > 0) { Flage = true; } return Flage; /*對應存儲過程 * ALTER PROCEDURE dbo.ChangePwd ( @UserId int, @UserPwd varchar(100) ) AS update Users set UserPwd=@UserPwd where UserId=@UserId RETURN */ } //驗證用戶; public static bool ValidateUser(string UserName,string UserPwd) { bool Flage = false; string procname = "dbo.ValidateUse"; SqlParameter[] prams ={new SqlParameter("@UserName",SqlDbType.VarChar,50), new SqlParameter("@UserPwd",SqlDbType.VarChar,100)}; prams[0].Value = UserName; prams[1].Value = UserPwd; int intResult = DataBase.RunExecuteScalar(procname, prams); if (intResult > 0) { Flage = true; } return Flage; /*ALTER PROCEDURE dbo.ValidateUse ( @UserName varchar(50), @UserPwd varchar(100) ) AS select count(*) from Users where UserName=@UserName and UserPwd=@UserPwd RETURN */ } //檢驗用戶是否存在; public static bool IsValidateUserName(string UserName) { bool Flage = false; string procname = "dbo.IsValidateUserName"; SqlParameter[] prams ={new SqlParameter("@UserName",SqlDbType.VarChar,50)}; prams[0].Value = UserName; int intResult = DataBase.RunExecuteScalar(procname, prams); if (intResult > 0) { Flage = true; } return Flage; /*對應存儲過程 * ALTER PROCEDURE dbo.IsValidateUserName ( @UserName varchar(50) ) AS select count(*) from Users where UserName=@UserName RETURN */ } //得到所有用戶信息(用來綁定到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 AS select * from Users RETURN*/ } public static string GetUserNameByUserId(int UserId) { string strUserName = string.Empty; string procname = "dbo.GetUserNameByUserId"; SqlParameter[] prams ={new SqlParameter("@UserId",SqlDbType.Int)}; prams[0].Value = UserId; SqlDataReader Dr = DataBase.RunProcGetReader(procname,prams); while (Dr.Read()) { strUserName = Dr["UserName"].ToString(); } Dr.Close(); return strUserName; /*對應存儲過程 * ALTER PROCEDURE dbo.GetUserNameByUserId ( @UserId int ) AS select UserName from Users where UserId=@UserId RETURN*/ } public static int GetUserIdByUserName(string UserName) { int UserId = 0; string procname = "dbo.GetUserIdByUserName"; SqlParameter[] prams ={ new SqlParameter("@UserName", SqlDbType.VarChar,50) }; prams[0].Value = UserName; SqlDataReader Dr = DataBase.RunProcGetReader(procname,prams); while (Dr.Read()) { UserId = Convert.ToInt32(Dr["UserId"]); } Dr.Close(); return UserId; /*對應存儲過程 * ALTER PROCEDURE dbo.GetUserIdByUserName ( @UserName varchar(50) ) AS select UserId from Users where UserName=@UserName RETURN */ } public static Users GetUserByUserId(int UserId) { Users SingleUser = new Users(); string procname = "dbo.GetUserByUserId"; SqlParameter[] prams ={ new SqlParameter("@UserId", SqlDbType.Int) }; prams[0].Value = UserId; SqlDataReader Dr = DataBase.RunProcGetReader(procname,prams); while (Dr.Read()) { SingleUser =new Users(Dr); } Dr.Close(); return SingleUser; /*對應存儲過程 ALTER PROCEDURE dbo.GetUserByUserId ( @UserId int ) AS select * from Users where UserId=@UserId RETURN */ } }

最後更新:2017-04-02 03:42:39

  上一篇:go 多核時代:並行程序設計探討(6)——多機協作(又叫分布式處理)
  下一篇:go 數據庫訪問類的編寫