当前位置: 首页 > news >正文

C# WinForm 数据库增删改查 超级完整版

一、准备工作

  1. 安装SQL Server
  2. 创建数据库 + 表
  3. WinForm 拖入:
    • DataGridView(显示数据)
    • TextBox(输入)
    • Button(增删改查)

二、引入命名空间(必须写)

using System.Data; using System.Data.SqlClient;

三、数据库连接字符串(最关键)

// Windows 身份验证 string connStr = "Data Source=.;Initial Catalog=你的数据库名;Integrated Security=True"; // SQL Server 账号密码登录 string connStr = "Data Source=.;Initial Catalog=你的数据库名;User ID=sa;Password=123456";

四、【查】查询所有数据(加载到 DataGridView)

最常用、最基础

private void btnSelect_Click(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); string sql = "SELECT * FROM 表名"; SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); sda.Fill(dt); dataGridView1.DataSource = dt; } }

五、【增】添加数据(安全版,防 SQL 注入)

private void btnAdd_Click(object sender, EventArgs e) { string name = txtName.Text; string age = txtAge.Text; using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); // 安全写法:参数化,绝不拼接SQL! string sql = "INSERT INTO 表名(Name,Age) VALUES(@Name,@Age)"; SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@Name", name); cmd.Parameters.AddWithValue("@Age", age); int rows = cmd.ExecuteNonQuery(); if (rows > 0) MessageBox.Show("添加成功!"); else MessageBox.Show("添加失败!"); } // 刷新表格 btnSelect_Click(null, null); }

六、【改】修改数据

private void btnUpdate_Click(object sender, EventArgs e) { string id = txtId.Text; string name = txtName.Text; string age = txtAge.Text; using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); string sql = "UPDATE 表名 SET Name=@Name,Age=@Age WHERE Id=@Id"; SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@Id", id); cmd.Parameters.AddWithValue("@Name", name); cmd.Parameters.AddWithValue("@Age", age); int rows = cmd.ExecuteNonQuery(); if (rows > 0) MessageBox.Show("修改成功!"); } btnSelect_Click(null, null); }

七、【删】删除数据

private void btnDelete_Click(object sender, EventArgs e) { string id = txtId.Text; using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); string sql = "DELETE FROM 表名 WHERE Id=@Id"; SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@Id", id); int rows = cmd.ExecuteNonQuery(); if (rows > 0) MessageBox.Show("删除成功!"); } btnSelect_Click(null, null); }

八、点击 DataGridView 自动填充到文本框

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { DataGridViewRow row = dataGridView1.Rows[e.RowIndex]; txtId.Text = row.Cells["Id"].Value.ToString(); txtName.Text = row.Cells["Name"].Value.ToString(); txtAge.Text = row.Cells["Age"].Value.ToString(); } }

九、核心知识点(新手必背)

1.SqlConnection→ 连接数据库

2.SqlCommand→ 执行 SQL 语句

3.SqlDataAdapter→ 填充表格

4.Parameters防 SQL 注入,必须用!

5.ExecuteNonQuery()→ 执行增删改

6.ExecuteScalar()→ 查询单个值

7.using→ 自动关闭连接


十、新手最容易犯的 4 个错

  1. 拼接 SQL 字符串→ 必被注入
  2. 忘记 Open 连接→ 报错
  3. 不写 using→ 连接泄漏
  4. 字段名写错→ 运行不显示数据

十一、一句话总结(可做博客金句)

C# WinForm 数据库增删改查 = 连接 → 写 SQL → 参数化 → 执行 → 刷新表格简单、稳定、安全,项目开发必备!

http://www.jsqmd.com/news/905932/

相关文章:

  • 别再死记硬背了!用Python写个语法检查器,帮你搞定非谓语动词(附代码)
  • 2026镇江卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • 2026年 福建喷淋塔厂家推荐:不锈钢/PP/旋流板/卧式喷淋塔,废气处理设备/UV光解/活性炭吸附箱深度测评 - 品牌企业推荐师(官方)
  • 164、运动控制中的测试:带宽与稳定性分析
  • 降U定律:宇宙认知动力学第一定律
  • 图解人工智能(40)人工智能应用-AI美颜
  • Chiplet 架构嵌入式设计:异构计算平台搭建与性能调优实战
  • 基于Arduino与红外遥控的智能语音鱼改造:嵌入式系统综合实践
  • MKS RPS AX7657-85 故障分析与可能解决方案
  • 别再乱改grub了!保姆级教程:用tuned在CentOS 7/8上优雅隔离CPU核心(附实时性调优配置)
  • 从 Copilot 到智能体:2026 年 AI 编程工具全栈测评
  • 边缘 AI 轻量化部署实战:TinyML 在 STM32H5 上的模型压缩与实时推理优化
  • 紫檀红木黄花梨回收,京顺斋上门服务,专业估值,诚信变现 - 深鉴新闻
  • 《从零构建OpenClaw Docker镜像:高效部署与无缝迁移》
  • 终极指南:如何免费解锁Wand专业版功能的完整教程
  • 基于RP2040的硬件定义与软件定义CPU融合设计实践
  • 金山云Q1营收同比增长37.2% 调整后EBITDA率提升至27.6%
  • Activiti 5.22 保姆级入门:从25张表结构到第一个流程实例
  • windows上的codex安装后无法使用应用内的浏览器
  • 2026年国产多参数水质分析仪十大品牌深度排名:技术实力、行业渗透率与服务能力全景解析 - 液体流量液位品牌推荐
  • 华为eNSP模拟器实战:从IPv4到IPv6的平滑过渡,一个实验搞定RIPng、BGP和6to4隧道
  • 网安已饱和?还是真缺人?戳破行业最扎心的就业怪圈
  • 基于Arduino与PID控制的智能循迹机器人设计与实现
  • 监控局域网的软件有哪些?实用PC端大盘点!企业都在用
  • 使用Taotoken CLI工具一键配置多开发环境下的模型调用密钥
  • 什么是OPC(一人公司)?
  • 从游戏资源解构到创意重构:Harepacker复活版的现代游戏编辑哲学
  • 百度竞价代运营网络推广哪家强?2026年靠谱服务商排名与选型指南 - GEO优化
  • 基于CentOS7.9部署LAMP(二)基于域名的虚拟主机配置wordpress和discuz
  • 卖 PLC 可编程控制器怎么找客户?下游工厂都在哪