c# winform对数据库进行增删改查操作

2023-11-18

开发工具:sqlserver2012,visoual code 2017

打开sqlserver2012 ,创建一个表,表结构如下

 然后打开VS2017,文件-新建-项目-Windows窗体应用 这里我就在工具箱拉取了三个button和一个显示数据的dataGirdView控件

还有一个点击新增的跳转页面,有点丑不要介意哈

 

 这里开始正式代码了:

先右击添加一个类,DataBase.cs 获取数据库的连接 

 //数据库连接
        public SqlConnection getConn()
        {
            String strConnection = "server=192.168.1.192;database=test1;uid=sa;pwd=1120061929";
            SqlConnection conn = new SqlConnection(strConnection);
            return conn;
        }

双击Form1.cs里的 四个按钮(增删查改) 生成四个点击事件

这里我就直接把增删查改的代码写上去了

    //查询
        private void button1_Click(object sender, EventArgs e)
        {
            //获取数据库连接
            DataBase db = new DataBase();
            SqlConnection conn=db.getConn();
            //打开连接
            conn.Open();
           //定义sql语句
            String sql = "select * from test1";
            //创建sql执行对象
            SqlCommand comm = new SqlCommand(sql, conn);
            //创建数据适配器
            SqlDataAdapter sda = new SqlDataAdapter();
            //执行sql语句
            sda.SelectCommand = comm;
            //创建数据集
            DataSet ds = new DataSet();
            //将对应test表数据保存到数据集合中
            sda.Fill(ds, "test1");
            //把数据集合中第一个表的数据填充到dataGirdView中
            dataGridView1.DataSource = ds.Tables[0];
            //关闭连接
            conn.Close();
         
        }
        //新增
        private void button2_Click(object sender, EventArgs e)
        {
            add ad = new add();
            ad.ShowDialog();
        }
        //修改
        private void button3_Click(object sender, EventArgs e)
        {
            DataBase db = new DataBase();
            SqlConnection conn = db.getConn();
            conn.Open();
            int rowindex = dataGridView1.CurrentRow.Index;
            String value0 = dataGridView1.Rows[rowindex].Cells[0].Value.ToString();
            String value1 = dataGridView1.Rows[rowindex].Cells[1].Value.ToString();
            String value2 = dataGridView1.Rows[rowindex].Cells[2].Value.ToString();
            String sql = "update test1 set name='" + value1 + "',age='" + value2 + "' where id='" + value0 + "'";
            SqlCommand comm = new SqlCommand(sql, conn);
            comm.ExecuteNonQuery();
            MessageBox.Show("保存成功!");
            conn.Close();
        }
        //删除
        private void button4_Click(object sender, EventArgs e)
        {
            DataBase db = new DataBase();
            SqlConnection conn = db.getConn();
            conn.Open();
            int rowindex = dataGridView1.CurrentRow.Index;
            String value0 = dataGridView1.Rows[rowindex].Cells[0].Value.ToString();
            String sql="delete from test1 where id='"+value0+"'";
            SqlCommand comm = new SqlCommand(sql, conn);
            comm.ExecuteNonQuery();
            MessageBox.Show("删除成功!");
            conn.Close();
        }

效果图如下

 

这里点新增的时候 跳转页面是直接new 新窗体类名调用他的showdialog()方法就行,这里就不介绍了 直接附上代码和效果图

  //新增
        private void button2_Click(object sender, EventArgs e)
        {
            add ad = new add();
            ad.ShowDialog();
        }
 private void button1_Click(object sender, EventArgs e)
        {
            DataBase db = new DataBase();
            SqlConnection conn = db.getConn();
            conn.Open();
            String sql="insert into test1 values('"+textBox1.Text+"','"+textBox2.Text+"')";
            SqlCommand comm = new SqlCommand(sql, conn);
            comm.ExecuteNonQuery();
            MessageBox.Show("保存成功!");
            conn.Close();
        }

效果图

 

这是小弟的第一篇博客,也是转学c#的一个入门小demo,大佬们多多指教!谢谢!勿喷。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# winform对数据库进行增删改查操作 的相关文章

  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Spring Boot 统一返回前端封装VO类型结果集定义

    现在大部分项目都是前后端分离的项目 为了统一管理 后端需要对数据进行封装对应的VO数据 什么是Vo我就不叙述了 这里贴出我自己的VO封装类 项目的故障码并没有定义太多 所以也没有定义枚举类型 供大家参考 import io swagger
  • Unity查看接入的Ironsource和adapter 版本号

    APPLOVINADAPTER版本号
  • vmware 开机自动启动虚拟机

    vmware开机自动启动 可以使用vmrun命令 1 首先在 我的电脑 属性 高级 环境变量 PATH 中添加vmware路径 如 C Program Files x86 VMware VMware Workstation 2 新建一个 启
  • Kafka一文懂

    初识 Kafka 什么是 Kafka Kafka 是由 Linkedin 公司开发的 它是一个分布式的 支持多分区 多副本 基于 Zookeeper 的分布式消息流平台 它同时也是一款开源的基于发布订阅模式的消息引擎系统 Kafka 的基本
  • 影响DDR5稳定性的RAS功能

    内存的稳定性 离不开RAS功能 这里的RAS Reliability Availability and Serviceability 即可靠性 可用性和可维护性的简称 RAS功能一方面可以通过调整信号规避风险 另一方面 在发生错误时及时发现
  • js常用正则表达式 匹配多个汉字、数字、英文、所有字符(附带Layui中form的表单验证)

    常用正则表达式 转自 菜鸟工具 https c runoob com front end 854 一 校验数字的表达式 数字 0 9 n位的数字 d n 至少n位的数字 d n m n位的数字 d m n 零和非零开头的数字 0 1 9 0
  • 系统部署的基本流程

    系统部署的基本流程 系统升级部署的步骤 系统升级部署的步骤 一 web后台 1 确保代码正确 配置正确 打包为war 2 登录现有web端查看部分数据正常 数据库部分表时间段数据正常 3 连接服务器 进入相应tomcat 停止tomcat
  • Vite简介

    Vite是一个快速 轻量级的前端构建工具 它可以让开发者更高效地进行前端开发 相比于其他构建工具 Vite的特点在于快速的冷启动 模块热替换和按需编译等功能 下面我们将详细探讨Vite的优势和如何使用它 什么是Vite Vite是一款基于R
  • python进阶(七):并发和多线程

    一 多线程 原文 大纲 首页 并发是一种同时执行多个任务的方式 而多线程是一种实现并发的技术 在Python中 可以使用多线程来实现并发编程 了解Python的并发和多线程对于编写高效和响应性的程序非常重要 并发 vs 并行 在讨论并发和多
  • 支持本地挂载的网盘文件列表工具AList

    什么是 Alist AList 是一个支持多存储的文件列表程序 使用 Gin 框架和 Solidjs 库 可以将常见的 18 种网盘整合在一起 并支持 WebDAV 客户端访问 之前老苏写过一篇 Alist 但此 Alist 非彼 Alis
  • Hyperledger2.0 链码安装

    文章目录 简介 package install approveformyorg commit 半自动化安装链码 简介 以Hyperldger2 0为例 链码的安装主要分为以下几部分 package 打包源代码 install 安装链码 ap
  • Embedded world conference 2015

    本文转载至 http www embedded world eu program html 一些相关的议程 Tuesday February 24 13 30 14 30 Keynote 1 Conference Keynote 09 30
  • k3服务器端的虚拟,k3服务器 客户端配置

    k3服务器 客户端配置 内容精选 换一换 选择Windows开发环境下 安装Eclipse 安装JDK 请安装JDK1 8及以上版本 Eclipse使用支持JDK1 8及以上的版本 并安装JUnit插件 若使用IBM JDK 请确保Ecli
  • 想搞清是服务器否存在内存泄漏或jvm其他方面的问题

    解决问题 想搞清是服务器否存在内存泄漏或jvm其他方面的问题 heap dump heap dump文件是一个二进制文件 它保存了某一时刻JVM堆中对象使用情况 HeapDump文件是指定时刻的Java堆栈的快照 是一种镜像文件 Heap
  • 深度学习总结(一)

    深度学习总结 一 1 经典优化算法 1 一阶迭代法 又称梯度下降法 2 二阶迭代法 牛顿法 一般在神经网络里面 L 函数就是代价函数 2 不同梯度下降法 1 经典梯度下降法 2 随机梯度下降法 随机梯度下降法可以解决经典梯度下降法数据量大
  • 代码随想录算法训练营第一天

    704 二分查找 题目链接 力扣 二分法写代码时一般是写左闭右闭和左闭右开两种类型 左闭右闭 left right 左闭右开 left right 指右边不包含right这个值 int right size 两大问题 while left
  • 全新的刷脸支付开辟一条全新发展之路

    数字化和刷脸支付的强强联合给众多商家带去希望和惊喜 崭新的2021年 这个惊喜仍然在继续 数字化经营刷脸支付 如何为创业者带去商机 2020年 是刷脸支付发展的黄金时期 它曾因为疫情跌落到谷底 却也因为疫情再次飞上云端 重拾自信 在行业巨头
  • form 校验多个表单

    有的时候 表单需要拆开多个 这时候就需要校验多个表单
  • Qt 学习之路:线程和 QObject

    前面两个章节我们从事件循环和线程类库两个角度阐述有关线程的问题 本章我们将深入线程间得交互 探讨线程和QObject之间的关系 在某种程度上 这才是多线程编程真正需要注意的问题 现在我们已经讨论过事件循环 我们说 每一个 Qt 应用程序至少
  • c# winform对数据库进行增删改查操作

    开发工具 sqlserver2012 visoual code 2017 打开sqlserver2012 创建一个表 表结构如下 然后打开VS2017 文件 新建 项目 Windows窗体应用 这里我就在工具箱拉取了三个button和一个显