C#超市管理系统实战:WinForms+SQL Server数据库附加与部署全攻略
简介基于C#与SQL Server 2008的超市管理系统完整提供项目源码和数据库文件是一份可用于课程设计、毕业设计或C#数据库开发入门实践的优质资源。系统面向中小型超市的日常运营覆盖商品管理、采购管理、销售管理、会员管理、库存预警和报表生成等核心模块并包含登录、主界面、员工管理等多种典型窗体清晰展示了从界面到数据库的完整业务逻辑。压缩包内共59个文件以.cs源代码、.resx界面资源、.mdf/.ldf数据库文件以及.config配置为主附带说明文档整体大小约1.97MB结构紧凑、便于下载。项目可在Visual Studio 2010中直接打开运行通过Windows身份验证连接SQL Server 2008数据库有助于学习者理解数据库附加、连接配置、WinForms界面开发等技术要点也为二次开发提供了完整的代码和数据库基础。目前已有119人学习下载适合C#初学者、毕业设计学生以及需要实际项目经验的开发者参考。1. 基于C#的超市管理系统源码和数据库分开存放先附库再谈编译拿到这份基于C#的超市管理系统源码包第一件事不是急着用VS打开.sln文件而是先把DATA目录下的db_AYCSGJ.mdf和db_AYCSGJ_log.ldf附加到SQL Server 2008实例上。数据库附加不成功后面所有代码编译通过也白搭。这套系统的技术栈很典型C# WinForms做界面强类型DataSet做数据模型SQL Server 2008做存储适合课程设计、毕业设计也适合想快速搭一套小型进销存框架的开发者参考。它解决的是超市日常运营里商品、采购、销售、会员、报表这几块核心事务源码结构不复杂但胜在完整登录窗口、主窗体、员工增删改都齐了。2. 源码包拆解从 .sln 到 DataSet.xsdWinForms 项目是这样组织的2.1 文件清单每个文件在项目里干什么解开压缩包后先别晕这套项目的文件命名很有规律基本上就是“一个窗体三件套”.cs是业务逻辑代码.Designer.cs是VS自动生成的界面布局代码.resx存窗体资源。比如Login.cs、Login.Designer.cs、login.resx就是登录窗体的完整组成。 home 同理Home.cs、Home.Designer.cs、Home.resx 对应主窗体AddEmp、DeleEmp、UpdataEmp 三组文件对应员工添加、删除、更新三个操作窗体。文件/目录作用AYCSGJ.sln解决方案文件双击它打开整个项目AYCSGJ.csproj工程文件记录编译目标和引用项AYCSGJ.v12.suoVS用户选项文件说明项目被VS2012以上版本打开过不参与编译getsqlconn.cs自定义的数据库连接类全局取连接用db_AYCSGJDataSet.xsd强类型DataSet定义相当于项目里的数据模型层DATA/db_AYCSGJ.mdfSQL Server 2008主数据库文件DATA/db_AYCSGJ_log.ldf数据库日志文件附加时必须和mdf一起给app.config应用配置文件连接字符串基本都写在这Program.csWinForms程序入口Main函数所在注意.suo这个文件很多人打开项目报版本错误就怀疑它有问题。实际上.suo只是VS保存的布局信息删掉完全不碍事。如果打开 .sln 时提示版本不兼容把.suo删了再试多半能解决。2.2 getsqlconn.cs整个项目的数据库连接入口getsqlconn.cs看名字就知道是“get sql connection”的缩写这是一个典型的工具类项目里所有窗体要访问数据库都会调用它返回一个SqlConnection对象。常见做法是写成静态方法避免每个窗体重复写连接字符串。using System.Data.SqlClient; public class getsqlconn { public static SqlConnection GetSqlConn() { string connStr System.Configuration.ConfigurationManager .ConnectionStrings[db_AYCSGJConnectionString].ConnectionString; return new SqlConnection(connStr); } }这段代码有三个关键点。第一连接字符串不写死在C#代码里而是从app.config的ConnectionStrings节点读取这意味着换机器部署时只需要改配置文件不需要重新编译。第二方法返回的是尚未Open()的连接对象调用方负责Open()和Close()这样更灵活也避免连接长期占用。第三ConfigurationManager来自System.Configuration命名空间如果VS报找不到这个类检查项目引用里是否添加了System.Configuration.dll。实际使用中我见过很多新手在这个类上翻车比如把ConnectionStrings写成AppSettings或者连接字符串的 key 名称跟配置文件里不一致运行时直接抛NullReferenceException。遇到这种问题先检查 key 是否完全一致包括大小写。2.3 为什么用强类型 DataSet 而不是 EF这套项目的数据访问层用的是db_AYCSGJDataSet.xsd强类型DataSet不是Entity Framework这类ORM框架。2010年前后的WinForms项目这是最主流的技术选型。强类型DataSet的思路是把数据库中需要的表预先在.xsd文件里定义好结构VS自动生成对应的Designer.cs代码每个表映射成一个强类型DataTable每一行映射成一个强类型DataRow。相比直接用DataTable裸写强类型DataSet的好处是写代码时有智能提示表名、列名、数据类型都是编译期可检查的而不是靠字符串拼接。比如操作员工表时row.EmpName直接就能点出来写错列名编译就报错运行时才能发现的低级错误少很多。那这套结构有没有坑有。DataSet是离线数据模型改完数据后要用SqlDataAdapter把改动提交回数据库这一步最容易出问题。SqlAdapter.Update()的默认行为是逐条执行InsertCommand、UpdateCommand、DeleteCommand如果这几个Command没有配置Update就会失败。常见解决方案是用SqlCommandBuilder让它自动根据SelectCommand生成增删改语句后面第4章的员工管理代码就是走这个路子。3. 数据库附加与连接配置先让 SQL Server 2008 认领这份 mdf3.1 附加数据库图形界面和T-SQL两条路径附加数据库是这个项目能跑起来的前提。打开SSMS连接本地实例数据库节点右键选择“附加”弹出窗口里点“添加”选中DATA/db_AYCSGJ.mdf下方会显示对应日志文件路径确认后点确定。如果附加的时候提示“无法打开物理文件”99%是目录权限问题SQL Server服务账户对DATA目录没有访问权限。把数据库文件拷贝到C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA或者给当前目录加上Everyone读权限基本能解决。更推荐用T-SQL方式附加步骤可重复出了问题方便排查USE [master] GO CREATE DATABASE [db_AYCSGJ] ON (FILENAME ND:\SuperMarket\DATA\db_AYCSGJ.mdf), (FILENAME ND:\SuperMarket\DATA\db_AYCSGJ_log.ldf) FOR ATTACH; GO这里FILENAME必须写两个文件各自的绝对路径mdf和ldf缺一不可。db_AYCSGJ是数据库名后面连接字符串里的Initial Catalog要和它一致。如果路径里带了中文或空格注意路径本身要用N 前缀的Unicode字符串包裹SQL Server对中文路径支持没问题但别出现\丢字符的复制粘贴错误。3.2 app.config 里的连接字符串改对这三个参数数据库附加成功后打开项目里的app.config连接字符串长这样?xml version1.0 encodingutf-8 ? configuration connectionStrings add namedb_AYCSGJConnectionString connectionStringData Source.\SQLEXPRESS;Initial Catalogdb_AYCSGJ;Integrated SecurityTrue providerNameSystem.Data.SqlClient / /connectionStrings /configuration连接字符串里三个参数决定生死。Data Source.\SQLEXPRESS表示连接本机的SQLEXPRESS实例如果你装的是SQL Server 2008正式版实例名通常是MSSQLSERVER那Data Source.就够如果是命名实例必须写成机器名\实例名。Initial Catalogdb_AYCSGJ要和附加数据库时的库名完全一致。Integrated SecurityTrue表示用当前Windows账户登录即摘要里提到的Windows身份验证。改完配置后关掉VS再重新打开因为app.config在编译时会被复制成输出目录里的AYCSGJ.exe.config只改VS里的文件不重新生成运行时用的还是旧配置。这一点很隐蔽我遇到过太多次“改了没生效”的情况结果发现是项目没有重新编译。3.3 验证配置是否成功别等登录窗体报错才去排错有经验的开发者拿到这种项目第一个验证动作不是F5运行而是用独立的数据库工具测试连接。最简单的办法是在SSMS里执行一条查询SELECT name FROM sys.databases WHERE name db_AYCSGJ;返回一行结果说明数据库附加成功。然后再确认登录名权限Windows身份验证下当前用户默认有db_owner权限。如果这一步能过运行项目时登录窗体能弹出来通常数据库层就没问题了。提示如果系统里同时装了SQL Server 2008和更新版本的LocalDB附加时注意确认连接的是哪个实例。SSMS里实例下拉框选错了后面怎么改连接字符串都连不上。4. 登录、员工管理与商品进销存核心模块的代码走读4.1 Login.cs登录窗口最忌讳把查询结果当判断条件这套系统的登录逻辑写在Login.cs里模式很简单用户输入用户名密码查出匹配记录成功则打开Home主窗体失败则提示错误。典型代码如下private void btnLogin_Click(object sender, EventArgs e) { string sql SELECT COUNT(*) FROM tb_User WHERE UserNamename AND UserPwdpwd; using (SqlConnection conn getsqlconn.GetSqlConn()) { conn.Open(); SqlCommand cmd new SqlCommand(sql, conn); cmd.Parameters.AddWithValue(name, txtUser.Text.Trim()); cmd.Parameters.AddWithValue(pwd, txtPwd.Text.Trim()); int count (int)cmd.ExecuteScalar(); if (count 0) { this.Hide(); Home home new Home(); home.Show(); } else { MessageBox.Show(用户名或密码错误); } } }这段代码值得注意两个细节。第一它用了SqlCommand参数化查询而不是把用户输入拼进SQL字符串这是防止SQL注入的基本习惯。第二ExecuteScalar()返回的是第一行第一列的值配合COUNT(*)恰好返回记录数比ExecuteReader()拿DataReader再循环判断更轻量。实际项目里我不建议把密码明文存在数据库里但课程设计类的源码普遍这样简化能理解。如果要做增强把UserPwd字段改成存储MD5或SHA256的哈希值校验时先对输入做同样的哈希处理再比对改动范围仅限登录方法和初始化数据。这个改进不影响其他模块。4.2 AddEmp、DeleEmp、UpdataEmpDataSet 离线修改的完整套路员工管理三个窗体是新手上手WinForms数据操作的最好教材。AddEmp对应的添加逻辑走的是“改内存DataSet再调用Adapter回写数据库”的路子private void btnAdd_Click(object sender, EventArgs e) { DataRow row db_AYCSGJDataSet.Tables[tb_Emp].NewRow(); row[EmpName] txtEmpName.Text.Trim(); row[EmpSex] cmbSex.Text; db_AYCSGJDataSet.Tables[tb_Emp].Rows.Add(row); SqlDataAdapter adapter new SqlDataAdapter(SELECT * FROM tb_Emp, getsqlconn.GetSqlConn()); SqlCommandBuilder builder new SqlCommandBuilder(adapter); adapter.Update(db_AYCSGJDataSet.Tables[tb_Emp]); }关键在最后一行的adapter.Update()。它的工作方式是检查DataTable里每一行的RowState新增行执行InsertCommand修改行执行UpdateCommand删除行执行DeleteCommand。而SqlCommandBuilder能根据SelectCommand自动生成这三个命令前提是查询的表有主键否则生成Update命令时会失败报错。这套写法的优势是业务代码极短数据层面的增删改逻辑交给Adapter处理。坏处也有DataSet是离线镜象多人同时改数据时后提交的人会覆盖先提交的人。单机小超市场景无所谓但概念要清楚这不是并发安全的方案。DeleEmp里删除操作的原理一致区别是先把DataRow标记为Delete()状态Update()执行后数据库行才会真正被删。4.3 这套系统实际能覆盖哪些超市业务源码里窗体名字暴露了业务边界Login负责身份验证Home是主菜单AddEmp/DeleEmp/UpdataEmp是员工档案维护。但摘要里提到的商品管理、采购管理、销售管理、会员管理、库存预警、报表生成这几块业务并不是每个都有一个独立窗体很多是集成在Home主窗体的Tab页或者菜单里。打开Home.Designer.cs能找到MenuStrip、DataGridView、TabControl这类控件定义每个控件背后牵着一张数据表。从数据库角度讲db_AYCSGJ里应该包含商品表、员工表、用户表、销售表、采购表、会员表、库存表这几张基础表。用SSMS展开数据库的表节点能看到实际表结构。建议拿到源码后先花半小时把每张表的列名和主键梳理清楚后面无论改报表还是加功能都事半功倍。这套系统的设计思路适合做参考骨架一张表配一个维护窗体DataGridView显示列表增删改通过DataSet回写这种模式能快速支撑起一个小型管理系统的主体功能。5. 复现避坑SQL Server 实例名、xsd 缺失、高版本 VS 编译不通过5.1 编译期问题VS版本和 .suo 文件引发的“假故障”现象双击AYCSGJ.sln后VS提示“此版本的应用程序不支持该项目类型”或者打开后解决方案里项目加载失败显示黄色感叹号。原因压缩包里的AYCSGJ.v12.suo说明项目被VS2012或更高版本打开过。VS2010虽然能打开 .sln但.suo的格式版本不兼容导致加载异常。另外如果AYCSGJ.csproj里写的目标框架是.NET Framework 4.0或更高而本机VS2010打的补丁不够也会提示不支持。解决把AYCSGJ.v12.suo直接删掉再重新用VS打开 .sln。VS会重新生成用户选项文件。如果仍然报项目类型不支持用记事本打开.csproj文件检查TargetFrameworkVersion节点确认本机已安装对应版本的.NET Framework。VS2010 SP1对.NET 4.0支持最稳定建议先打上SP1补丁再打开项目。5.2 数据库附加失败mdf 权限和实例版本问题现象附加时提示“无法打开物理文件 ...db_AYCSGJ.mdf操作系统错误 5拒绝访问”或者“文件不是有效的数据库页头”。原因操作系统错误5是典型的NTFS权限问题SQL Server服务账户通常是MSSQLSERVER或NETWORK SERVICE对存放mdf的文件夹没有读取权限。而“不是有效的数据库页头”则是mdf文件路径写错或文件被损坏另一种情况是mdf本身来自更高版本的SQL Server2008实例无法识别但现在这个包里数据库是2008创建的基本排除版本问题。解决给mdf和ldf所在目录添加Everyone的读取和执行权限或者干脆把DATA文件夹移动到一个访问限制少的位置比如D:\根目录下的新文件夹再执行附加上下文。如果是文件损坏可以用DBCC CHECKDB检查但课程设计源码里这种情况罕见先检查路径和权限更实际。另外注意附加时两个文件必须放在同一个目录不能只给mdf不给ldf。5.3 运行期连不上连接字符串和实例名对不上现象运行时登录窗体能弹出点登录按钮后弹出异常 “在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器”。原因绝大多数情况是app.config里的Data Source和本地SQL Server实例名不匹配。有人装的是默认实例MSSQLSERVER配置文件里写的却是.\SQLEXPRESS还有人用的是localhost但SQL Server只监听命名管道TCP/IP协议被禁用。解决先确认本地实例名。SSMS登录框点开“服务器名称”下拉框看到主机名\MSSQLSERVER的是默认实例主机名\SQLEXPRESS的是Express实例。没有现成SSMS的命令行跑sqlcmd -L可以列出本机所有可用实例。拿到准确实例名后修改连接字符串的Data Source部分。改完记得重新生成项目不然运行用的还是输出目录里旧的exe.config。另外一个高发点Integrated SecurityTrue时当前Windows账户必须是SQL Server里存在且能映射的登录名。如果用的是微软账户登录的Windows而SQL Server实例管理员没有启用Windows认证也会报“用户登录失败”。这种场景最省事的方式是切到SQL Server身份验证第6章会写具体步骤。6. 进阶用法把 Windows 身份验证换成 SQL 登录并验证备份恢复很多课程设计的演示环境要求提交一个“统一账号”让老师测试Windows身份验证这时候就不够用因为换一台机器登录Windows账户就变了。我一般会先把数据库改成混合认证模式再创建一个专门的SQL登录名最后同步修改连接字符串。先在SSMS里执行以下脚本启用SQL Server身份验证并创建登录名USE [master] GO EXEC xp_instance_regread NHKEY_LOCAL_MACHINE, NSoftware\Microsoft\MSSQLServer\MSSQLServer, NLoginMode, LoginMode OUTPUT -- 如果LoginMode不为2需要手动在SSMS实例属性里 -- 将服务器身份验证改为“SQL Server和Windows身份验证模式” CREATE LOGIN [MarketUser] WITH PASSWORD NYourStrongPwd, CHECK_POLICY OFF; GO USE [db_AYCSGJ] GO CREATE USER [MarketUser] FOR LOGIN [MarketUser]; GO EXEC sp_addrolemember Ndb_owner, NMarketUser; GOCHECK_POLICY OFF让这个登录名不强制密码复杂度课程设计演示环境足够用。sp_addrolemember把MarketUser加到db_owner固定数据库角色这样它对db_AYCSGJ有完整读写权限不需要单独授予表权限。注意混合认证模式修改后要重启SQL Server服务才能生效。然后app.config的连接字符串改成add namedb_AYCSGJConnectionString connectionStringData Source.\SQLEXPRESS;Initial Catalogdb_AYCSGJ;User IDMarketUser;PasswordYourStrongPwd providerNameSystem.Data.SqlClient /改完重新编译运行登录窗体正常起来说明SQL账号能用了。这时候再做一步备份验证确保整个系统有“后悔药”可吃。SQL Server 2008可以用sqlcmd直接备份sqlcmd -S .\SQLEXPRESS -U MarketUser -P YourStrongPwd -Q BACKUP DATABASE [db_AYCSGJ] TO DISKD:\backup\db_AYCSGJ.bak备份文件生成后随便改坏几张表的数据再执行RESTORE DATABASE把它还原确认能回到备份点。从那以后我每次拿到这种带数据库的源码包都会先做一遍“改连接字符串 备份数据库”的流程再开始动代码免得改崩了数据又没法回滚每次重新附加原版mdf费时又费神。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

高性价比AI API聚合站怎么选:2026年六家平台实测与分层策略

高性价比AI API聚合站怎么选:2026年六家平台实测与分层策略

两个月、六家平台、累计超过 50 万次接口调用——这是本文评测的原始口径。测试环境统一为腾讯云上海节点,维度集中在开发者最关心的五项:价格、稳定性、模型覆盖、速度、客服响应。结论先行:没有全项第一,但有明确的分层组合策略…

2026/10/5 20:04:45 阅读更多 →
Linux Nginx 怎么通过日志分析 TLS 握手失败的错误原因

Linux Nginx 怎么通过日志分析 TLS 握手失败的错误原因

前言排查 TLS 握手失败时,最常听到的一句话是:"日志里全是 200,哪有握手失败?"这句话本身没错,但它说明找错了地方。Nginx 处理一个 HTTPS 连接的顺序是:接受 TCP 连接 → 完成 TLS 握手 → 解析…

2026/10/5 20:02:59 阅读更多 →
详解C++编程中对于函数的基本使用

详解C++编程中对于函数的基本使用

形式参数和实际参数在调用函数时,大多数情况下,函数是带参数的。主调函数和被调用函数之间有数据传递关系。前面已提到:在定义函数时函数名后面括号中的变量名称为形式参数(formal parameter,简称形参),在主调函数中调…

2026/10/5 20:04:31 阅读更多 →

最新新闻

微信小程序界面设计:WXSS 选择器课程之 ::selection 伪元素实战

微信小程序界面设计:WXSS 选择器课程之 ::selection 伪元素实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 22:08:14 阅读更多 →
MRAM工业嵌入式存储方案:MR25H40CDF与PIC18LF47K42驱动实战

MRAM工业嵌入式存储方案:MR25H40CDF与PIC18LF47K42驱动实战

1. 为什么 MRAM 在工业嵌入式场景里越来越香搞过工业设备数据采集的朋友应该都有过这种体验:设备跑在现场,环境温度动辄七八十度,偶尔还要断电重启,结果回头一看,关键参数丢了,或者存储芯片的某个扇区写坏了…

2026/10/5 22:07:13 阅读更多 →
工业数据记录新方案:MRAM替换并行SRAM与PIC18F47Q10实战

工业数据记录新方案:MRAM替换并行SRAM与PIC18F47Q10实战

1. 为什么工业现场还在用并行SRAM,而MRAM已经悄悄替换了它做工业控制和嵌入式数据采集的人,大概率都遇到过这个场景:设备跑在现场,每隔几毫秒要记录一次关键状态,比如电机转速、阀门开度、累计运行时长。这些数据不能丢…

2026/10/5 22:07:13 阅读更多 →
MRAM与PIC18LF47K42工业数据存储方案:SPI驱动与掉电保护实战

MRAM与PIC18LF47K42工业数据存储方案:SPI驱动与掉电保护实战

1. 项目缘起与方案选型:为什么是 MRAM 加 PIC181.1 一个真实的数据存储痛点做过工业数据采集的朋友大概率都遇到过这个场景:设备装在配电柜里或者户外机箱内,主控每隔几秒就要把一组关键参数(累计流量、校准系数、故障快照、运行小…

2026/10/5 22:07:12 阅读更多 →
ChatGPT Codex试用心得:从dotnet项目PR看码农的可靠助手还是失业号角?TaoToken统一Key实测

ChatGPT Codex试用心得:从dotnet项目PR看码农的可靠助手还是失业号角?TaoToken统一Key实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 22:06:11 阅读更多 →
EditText 光标不闪动?从 android:textCursorDrawable 到 TaoToken 的排查路径

EditText 光标不闪动?从 android:textCursorDrawable 到 TaoToken 的排查路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 22:06:11 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →