C#-ade.net-實體類、數據訪問類


實體類、數據訪問類 是由封裝演變而來,使對數據的訪問更便捷,使用時只需要調用即可,無需再次編寫代碼

實體類是按照數據庫表的結構封裝起來的一個類

首先,新建文件夾 App_Code ,用於存放數據庫類等類文件,新建類,例如: Users(與數據庫訪問的表同名)和 UsersData

 在類UsersData里寫數據庫訪問方法

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;

namespace lxc_屬性擴展.APP_Code
{
    public class UsersData
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;

        public UsersData()//主函數實例化時自動實例化下列 數據庫連接類 和 數據庫操作類 語句
        {
            conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=asdf");
            cmd = conn.CreateCommand();
        }

        /// <summary>
        /// 將數據加入到數據庫中,如果返回true說明添加成功
        /// </summary>
        /// <param name="u">要加入到數據庫表中的Users對象</param>
        /// <returns></returns>
        public bool Insert(Users u)
        {
            bool ok = false;
            cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f,@g)";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", u.Username);
            cmd.Parameters.AddWithValue("@b", u.Password);
            cmd.Parameters.AddWithValue("@c", u.Nickname);
            cmd.Parameters.AddWithValue("@d", u.Sex);
            cmd.Parameters.AddWithValue("@e", u.Birthday);
            cmd.Parameters.AddWithValue("@f", u.Nation);
            cmd.Parameters.AddWithValue("@g", u.Class);
            int count = 0;
            conn.Open();
            count = cmd.ExecuteNonQuery();
            conn.Close();
            if (count > 0)
                ok = true;
            return ok;
        }

        /// <summary>
        /// 將數據從數據庫中刪除,如果返回true說明刪除成功
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        public bool Delete(string username)
        {
            bool ok = false;
            cmd.CommandText = "delete from Users where username=@a";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", username);
            int count = 0;
            conn.Open();
            count = cmd.ExecuteNonQuery();
            conn.Close();
            if (count > 0)
                ok = true;
            return ok;
        }

        /// <summary>
        /// 對數據庫中的數據進行修改,如果返回true說明修改成功
        /// </summary>
        /// <param name="username"></param>
        /// <param name="u"></param>
        /// <returns></returns>
        public bool Update(string username, Users u)
        {
            bool ok = false;
            cmd.CommandText = "update Users set username=@a,password=@b,nickname=@c,sex=@d,birthday=@e,nation=@f,class=@g where username=@un";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", u.Username);
            cmd.Parameters.AddWithValue("@b", u.Password);
            cmd.Parameters.AddWithValue("@c", u.Nickname);
            cmd.Parameters.AddWithValue("@d", u.Sex);
            cmd.Parameters.AddWithValue("@e", u.Birthday);
            cmd.Parameters.AddWithValue("@f", u.Nation);
            cmd.Parameters.AddWithValue("@g", u.Class);
            cmd.Parameters.AddWithValue("@un", username);
            int i = 0;
            conn.Open();
            i = cmd.ExecuteNonQuery();
            conn.Close();
            if (i > 0)
                ok = true;
            return ok;
        }

        /// <summary>
        /// 查詢數據庫中所有的數據,返回List<>集合
        /// </summary>
        /// <returns></returns>
        public List<Users> Select()
        {
            List<Users> list = new List<Users>();
            cmd.CommandText = "select *from Users";
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {                
                while (dr.Read())
                {
                    Users u = new Users();
                    u.Ids = (int)dr["ids"];
                    u.Username = dr["username"].ToString();
                    u.Password = dr["password"].ToString();
                    u.Nickname = dr["nickname"].ToString();
                    u.Sex = (Boolean)dr["sex"];
                    u.Birthday = (DateTime)dr["birthday"];
                    u.Nation = dr["nation"].ToString();
                    u.Class = dr["class"].ToString();

                    list.Add(u);
                }
            }
            conn.Close();
            return list;
        }

        /// <summary>
        /// 查詢數據庫中某條數據,返回List<>集合
        /// </summary>
        /// <param name="username">要查詢的數據的用戶名</param>
        /// <returns></returns>
        public List<Users> Select(string username)
        {
            List<Users> list = new List<Users>();
            cmd.CommandText = "select *from Users where username=@a";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", username);

            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                Users u = new Users();
                u.Ids = (int)dr["ids"];
                u.Username = dr["username"].ToString();
                u.Password = dr["password"].ToString();
                u.Nickname = dr["nickname"].ToString();
                u.Sex = (Boolean)dr["sex"];
                u.Birthday = (DateTime)dr["birthday"];
                u.Nation = dr["nation"].ToString();
                u.Class = dr["class"].ToString();

                list.Add(u);
            }
            conn.Close();
            return list;
        }
    }
}
數據訪問類-操作代碼

 

 

 

在主函數中調用方法即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM