news 2026/4/25 22:25:39

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/23 7:29:02

OpCore Simplify技术解析:黑苹果EFI自动化配置的智能解决方案

OpCore Simplify技术解析:黑苹果EFI自动化配置的智能解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify作为专业的O…

作者头像 李华
网站建设 2026/4/19 18:17:03

OpCore Simplify如何解决黑苹果EFI配置的三大技术难题?

OpCore Simplify如何解决黑苹果EFI配置的三大技术难题? 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 作为一款专注于简化OpenCore EFI创…

作者头像 李华
网站建设 2026/4/25 2:54:54

OpCore Simplify:零基础构建专业级Hackintosh EFI的终极方案

OpCore Simplify:零基础构建专业级Hackintosh EFI的终极方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置而头…

作者头像 李华
网站建设 2026/4/23 14:22:13

Python解析器Lark深度解析:掌握现代语法分析的核心技术

Python解析器Lark深度解析:掌握现代语法分析的核心技术 【免费下载链接】lark Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity. 项目地址: https://gitcode.com/gh_mirrors/la/lark Lark作为Python生…

作者头像 李华
网站建设 2026/4/19 3:48:40

支持实时录音与批量识别|深度解析科哥版FunASR语音识别流程

支持实时录音与批量识别|深度解析科哥版FunASR语音识别流程 1. 科哥版FunASR:不只是语音转文字,更是生产力工具 你有没有遇到过这样的场景?会议录音长达一小时,整理纪要却要花上半天;视频剪辑时手动打时间…

作者头像 李华