news 2026/4/16 12:29:54

C#Windows窗体开发的图书管理系统,可远程,有文档,供学习参考使用,主要功能:涵盖数据库...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#Windows窗体开发的图书管理系统,可远程,有文档,供学习参考使用,主要功能:涵盖数据库...

C#Windows窗体开发的图书管理系统,可远程,有文档,供学习参考使用,主要功能:涵盖数据库增删查改,登录注册,上传图片

图书馆里那本被翻烂的《C#入门经典》终于派上用场了!最近用Windows窗体搞了个带远程访问的图书管理系统,数据库操作、图片上传这些实战功能一个不少,代码里还埋了不少新手容易踩的坑。直接上硬货——

登录模块藏着个有意思的设计:注册时密码用SHA256加盐哈希。看看这段加密代码:

public static string HashPassword(string password, string salt) { using (var sha256 = SHA256.Create()) { var saltedPassword = password + salt; byte[] bytes = Encoding.UTF8.GetBytes(saltedPassword); byte[] hash = sha256.ComputeHash(bytes); return Convert.ToBase64String(hash); } }

这里用using自动释放SHA256实例,避免内存泄漏。加盐操作把用户注册时间戳作为盐值,比单纯用固定盐安全得多。

图书管理模块的核心是带分页的DataGridView绑定。重点看这个分页查询的存储过程:

CREATE PROCEDURE GetBooksPaged @PageIndex INT, @PageSize INT AS BEGIN SELECT * FROM Books ORDER BY BookID OFFSET (@PageIndex - 1) * @PageSize ROWS FETCH NEXT @PageSize ROWS ONLY END

C#端用Dapper执行存储过程,比拼接SQL安全。注意OFFSET子句从SQL Server 2012开始支持,比以前的ROW_NUMBER()方案更简洁。

图片上传功能在WinForm里有点小麻烦。用OpenFileDialog选图后,需要转换成字节数组存数据库:

byte[] imageBytes; using (MemoryStream ms = new MemoryStream()) { pictureBox.Image.Save(ms, ImageFormat.Jpeg); imageBytes = ms.ToArray(); } // 存数据库时用varbinary(max)字段

但别直接存原图!我在项目里加了图片压缩逻辑,超过2MB的自动压缩到1024x768分辨率,避免数据库膨胀。

C#Windows窗体开发的图书管理系统,可远程,有文档,供学习参考使用,主要功能:涵盖数据库增删查改,登录注册,上传图片

远程访问的关键在连接字符串:

string connStr = "Server=192.168.1.100,1433;Database=BookDB;User Id=sa;Password=yourStrongPassword;";

要确保SQL Server配置了允许远程连接,防火墙开放1433端口。实际部署建议用Windows身份验证更安全,这里为演示方便用了SQL验证。

项目文档里特意写了几个典型错误场景:

  1. 窗体卡顿——该用BackgroundWorker的地方没异步
  2. 图片显示变形——PictureBox的SizeMode没设Zoom
  3. 翻页时页码错乱——PageIndex从0还是1开始没统一

这些坑新手八成会踩,文档里都给了解决方案。

源码里还藏了个彩蛋:FrmMain窗体的关闭按钮实际是隐藏窗体,真正退出得走菜单的退出命令——防止用户手滑关程序。这种防呆设计适合需要长时间运行的管理系统。

想要源码的伙计注意看GitHub仓库里的DB_Script文件夹,里面除了建表语句,还有模拟数据的存储过程,能一键生成10万条测试数据,专门用来测试分页性能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 18:36:12

OpCore-Simplify终极指南:5步解决Hackintosh配置难题

OpCore-Simplify终极指南:5步解决Hackintosh配置难题 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 面对复杂的OpenCore配置,…

作者头像 李华
网站建设 2026/4/13 9:18:55

猫抓资源嗅探插件完全攻略:网页下载难题的终极解决方案

猫抓资源嗅探插件完全攻略:网页下载难题的终极解决方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页视频无法下载而苦恼吗?面对那些看似触手可及却又无法保存的在…

作者头像 李华
网站建设 2026/4/14 8:32:04

快速部署语音识别WebUI|FunASR + speech_ngram_lm_zh-cn 镜像详解

快速部署语音识别WebUI|FunASR speech_ngram_lm_zh-cn 镜像详解 1. 引言:为什么你需要一个本地语音识别系统? 你有没有遇到过这样的场景:会议录音要整理成文字、视频内容需要生成字幕、采访素材得快速转写?靠人工听…

作者头像 李华
网站建设 2026/4/16 11:56:55

SLR_Converter:基于MATLAB/Simulink的的串联负载谐振仿真模型

SLR_Converter:基于MATLAB/Simulink的的串联负载谐振仿真模型。 仿真模型附加一份说明文档和参考文献,便于理解和修改参数。 仿真条件:MATLAB/Simulink R2015b,如需转成低版本格式请提前告知SLR_Converter这个仿真模型用Simulink把…

作者头像 李华
网站建设 2026/4/16 12:55:36

Bongo Cat模型避坑指南:三步诊断法帮你精准选择虚拟桌面伴侣

Bongo Cat模型避坑指南:三步诊断法帮你精准选择虚拟桌面伴侣 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作,每一次输入都充满趣味与活力! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你…

作者头像 李华