c#操作数据库三层架构

embedded/2025/1/23 0:06:50/

1#数据库操作类  SqlHelper.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

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

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;}}}
}

界面层

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();}}
}


http://www.ppmy.cn/embedded/156184.html

相关文章

第15个项目:一个有趣的豆瓣电影TOP爬虫

源码下载地址:https://download.csdn.net/download/mosquito_lover1/90294097 界面截图: 功能特点: 爬取豆瓣电影Top250的信息,包括电影标题、评分、简介和金句 使用BeautifulSoup解析HTML,提取需要的信息 使用jieba分词对电影简介和评语进行分词 生成漂亮的词云图,直观…

LeetCode 62. 不同路径

问题描述 LeetCode 62题“不同路径”是一个经典的动态规划问题。题目要求计算一个机器人在一个 m x n 的网格中&#xff0c;从左上角&#xff08;Start&#xff09;到达右下角&#xff08;Finish&#xff09;的不同路径数量。机器人每次只能向下或向右移动一步。 算法分析 动…

centos部署rabbitmq

要安装rabbitmq首先要安装erlang 二者对应的版本如下&#xff0c;具体查看地址 https://www.rabbitmq.com/docs/next/which-erlang[这里是图片001]https://www.rabbitmq.com/docs/next/which-erlang 一、安装erlang 1.1安装必要的依赖项&#xff1a; Erlang的编译过程需要一…

缓存之美:万文详解 Caffeine 实现原理(上)

由于社区最大字数限制&#xff0c;本文章将分为两篇&#xff0c;第二篇文章为缓存之美&#xff1a;万文详解 Caffeine 实现原理&#xff08;下&#xff09; 大家好&#xff0c;我是 方圆。文章将采用“总-分-总”的结构对配置固定大小元素驱逐策略的 Caffeine 缓存进行介绍&…

python——句柄

一、概念 句柄指的是操作系统为了标识和访问对象而提供的一个标识符&#xff0c;在操作系统中&#xff0c;每个对象都有一个唯一的句柄&#xff0c;通过句柄可以访问对象的属性和方法。例如文件、进程、窗口等都有句柄。在编程中&#xff0c;可以通过句柄来操作这些对象&#x…

当使用 npm 时,出现 `certificate has expired` 错误通常意味着请求的证书已过期。

当使用 npm 时&#xff0c;出现 certificate has expired 错误通常意味着请求的证书已过期。这可能是由于以下几种情况&#xff1a; 网络代理问题&#xff1a;如果使用了网络代理&#xff0c;代理服务器的证书可能过期或配置有误。系统时间错误&#xff1a;系统时间不准确可能导…

系统架构设计师-第2章-操作系统

【本章学习建议】 根据考试大纲&#xff0c;本章主要考查系统架构设计师单选题&#xff0c;预计考4分左右&#xff0c;对应第二版教材2.3.2小节&#xff0c;仅有基本概念&#xff0c;需要额外补充知识。根据历年真题考试情况&#xff0c;五大管理仍是重点。 2.1 操作系统概述 …

电脑办公技巧之如何在 Word 文档中添加文字或图片水印

Microsoft Word是全球最广泛使用的文字处理软件之一&#xff0c;它为用户提供了丰富的编辑功能来美化和保护文档。其中&#xff0c;“水印”是一种特别有用的功能&#xff0c;它可以用于标识文档状态&#xff08;如“草稿”或“机密”&#xff09;、公司标志或是版权信息等。本…