c#操作数据库三层架构

1#数据库操作类 SqlHelper.cs

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;

namespace stu
{
    class SqlHelper
    {
        private static string DbConfig = "Server=localhost;database=data_student;Trusted_Connection=True;";

        /// <summary>
        /// 对数据库进行 添加,修改,删除操作
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int EditSql(string sql)
        {
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = DbConfig;
            conn.Open();

            SqlCommand command = new SqlCommand(sql,conn);

            int count = 0;
            try
            {
                count = command.ExecuteNonQuery();
            }
            catch (Exception) 
            {

                count = -1;
                Console.WriteLine("数据库写入失败!");
            }

            command.Dispose();
            conn.Close();

            return count;

        }
        /// <summary>
        /// 查询数据库,返回DataTable
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static DataTable LookUp(string sql)
        {
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = DbConfig;
            conn.Open();

            SqlCommand command = new SqlCommand(sql, conn);

            SqlDataAdapter apter = new SqlDataAdapter();
            apter.SelectCommand = command;

            DataSet ds = new DataSet();
            apter.Fill(ds);

            DataTable table = ds.Tables[0];
            conn.Close();
            return table;


        }


    }
}

2# 实体类 UserModel.cs

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace stu
{
    public class UserModel
    {
        public string UserName { get; set; }
        public string PassWord { get; set; }
        public string NickName { get; set; }
        public string Gender { get; set; }

        public override string ToString()
        {
            return string.Format("UserName:{0}  PassWord:{1}  NickName:{2}  Gender:{3}",UserName,PassWord,NickName,Gender);
        }
    }

   
}

3# 数据交换层 UserControl.cs

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
namespace stu
{
   public class UserControl
    {
        public static UserModel DataRowToUserModel(DataRow currentRow)
        {
            UserModel user = new UserModel();
            user.UserName = currentRow["UserName"].ToString().Trim();
            user.PassWord = currentRow["PassWord"].ToString().Trim();
            user.NickName = currentRow["NickName"].ToString().Trim();
            user.Gender = currentRow["Gender"].ToString().Trim();
            return user;
        }
        /// <summary>
        /// 登录,如果返回null 说明不存在
        /// </summary>
        /// <param name="username"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        public static UserModel Login(string username,string pwd)
        {
            string sql = $"select * from TableUser where UserName='{username}' and PassWord='{pwd}'; ";

            DataTable table= SqlHelper.LookUp(sql);
           
            if (table.Rows.Count<=0) // 这里要用小于等于0
            {
                return null;
            }

            UserModel user = DataRowToUserModel(table.Rows[0]);
            return user;

        }
        /// <summary>
        /// 返回所有数据 
        /// </summary>
        /// <returns></returns>
        public static List<UserModel> ShowAllUsers()
        {
            List<UserModel> list = new List<stu.UserModel>();

            string sql = $"select * from TableUser";

            DataTable table= SqlHelper.LookUp(sql);
            if (table.Rows.Count<=0)
            {
                return null;
            }

            for (int i = 0; i < table.Rows.Count; i++)
            {
                UserModel model = DataRowToUserModel(table.Rows[i]);
                list.Add(model);

            }

            return list;
        }

        /// <summary>
        /// 修改用户信息
        /// </summary>
        /// <param name="user"></param>
        public static bool EditUserInfo(UserModel user)
        {
            string sql = $"update TableUser SET password='{user.PassWord}',nickname='{user.NickName}',gender='{user.Gender}'where username='{user.UserName}'; ";

            int count = SqlHelper.EditSql(sql);
            if (count>=0)
            {
                return true;
            }else
            {
                return false;
            }

        }
    }
}

界面层

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;

namespace stu
{
    class Program
    {
        static void Main(string[] args)
        {

            while (true)
            {

         
            Console.WriteLine("欢迎进入登录系统....");
            Console.Write("输入用户名:");
            string name = Console.ReadLine();
            Console.Write("输入用户密码:");
            string pwd = Console.ReadLine();

            UserModel user = UserControl.Login(name, pwd);
            if (user==null)
            {
                Console.WriteLine("不存在");
                    continue;
            }else
            {
                Console.WriteLine("登录成功");
                    break;
            }
            
            }

            List<UserModel> users = UserControl.ShowAllUsers();

            foreach (UserModel item in users)
            {
                Console.WriteLine(item);
            }


            // 修改数据
            Console.WriteLine("------------------------------------------------------------------------"  );

            UserModel u = new UserModel() { UserName = "李阿猫", PassWord = "123456", NickName = "guoguo"};
            bool flag = UserControl.EditUserInfo(u);
            if (flag)
            {
                Console.WriteLine("修改成功");
            }


            Console.ReadKey();
        }
    }
}
相关推荐
小小不董11 分钟前
深入理解oracle ADG和RAC
linux·服务器·数据库·oracle·dba
胚芽鞘6811 小时前
查询依赖冲突工具maven Helper
java·数据库·maven
宇钶宇夕1 小时前
SIMATIC S7-1200的以太网通信能力:协议与资源详细解析
运维·服务器·数据库·程序人生·自动化
LuckyLay2 小时前
1.1.1数据类型与变量——AI教你学Django
数据库·django·sqlite
水果里面有苹果2 小时前
20-C#构造函数--虚方法
java·前端·c#
汤姆大聪明2 小时前
Redis 持久化机制
数据库·redis·缓存
brevity_souls3 小时前
什么是时序数据库?——原理、特点与应用
数据库·时序数据库
SelectDB3 小时前
Apache Doris 实时更新技术揭秘:为何在 OLAP 领域表现卓越?
数据库·数据分析·apache
kk在加油4 小时前
Redis数据安全性分析
数据库·redis·缓存