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

C#对SQLServer增删改查

1.创建数据库

在这里插入图片描述

2.SqlServerHelper

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace WindowsFormsApp1
{internal class SqlServerHelper{/// <summary>/// 连接字符串/// </summary>private string strconn = string.Empty;public SqlServerHelper(string conn){//读取配置文件//strconn = ConfigurationManager.AppSettings["Conn"].ToString();//strconn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();strconn = conn;}/// <summary>/// 执行增删改SQL语句/// </summary>/// <param name="cmdText">SQL语句</param>/// <returns></returns>public int ExecuteNonQuery(string cmdText){using (SqlConnection conn = new SqlConnection(strconn)){conn.Open();return ExecuteNonQuery(conn, cmdText);}}/// <summary>/// 执行增删改SQL语句/// </summary>/// <param name="conn">SqlConnection</param>/// <param name="cmdText">SQL语句<</param>/// <returns></returns>public int ExecuteNonQuery(SqlConnection conn, string cmdText){int res;using (SqlCommand cmd = new SqlCommand(cmdText, conn)){cmd.CommandType = CommandType.Text;res = cmd.ExecuteNonQuery();if (conn.State == ConnectionState.Open){conn.Close();conn.Dispose();}}return res;}/// <summary>/// 执行查询SQL语句/// </summary>/// <param name="cmdText">SQL语句</param>/// <returns></returns>public DataTable ExecuteDataTable(string cmdText){using (SqlConnection conn = new SqlConnection(strconn)){conn.Open();return ExecuteDataTable(conn, cmdText);}}/// <summary>/// 执行查询SQL语句/// </summary>/// <param name="conn">SqlConnection</param>/// <param name="cmdText">SQL语句</param>/// <returns></returns>private DataTable ExecuteDataTable(SqlConnection conn, string cmdText){DataTable dt = new DataTable();using (SqlCommand cmd = new SqlCommand(cmdText, conn)){cmd.CommandType = CommandType.Text;using (SqlDataAdapter sda = new SqlDataAdapter(cmd)){sda.Fill(dt);if (conn.State == ConnectionState.Open){conn.Close();conn.Dispose();}}}return dt;}/// <summary>/// 执行查询SQL语句/// </summary>/// <param name="cmdText">SQL语句</param>/// <returns></returns>public DataTable ExecuteQuery(string cmdText){using (SqlConnection conn = new SqlConnection(strconn)){conn.Open();return ExecuteQuery(conn, cmdText);}}/// <summary>/// 执行查询SQL语句/// </summary>/// <param name="conn">SqlConnection</param>/// <param name="cmdText">SQL语句</param>/// <returns></returns>public DataTable ExecuteQuery(SqlConnection conn, string cmdText){DataTable dt = new DataTable();using (SqlCommand cmd = new SqlCommand(cmdText, conn)){using (SqlDataReader sdr = cmd.ExecuteReader()){dt.Load(sdr);sdr.Close();sdr.Dispose();if (conn.State == ConnectionState.Open){conn.Close();conn.Dispose();}}}return dt;}}
}

3.WinForm代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1: Form{private SqlServerHelper SqlServerHelpers;public Form1(){InitializeComponent();string conn = "Server=LAPTOP-J0SVE7KK;Database=sql;Integrated Security=True;";SqlServerHelpers = new SqlServerHelper(conn);}/// <summary>/// 查询/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){string sql = "SELECT * FROM Student";DataTable dataTable = SqlServerHelpers.ExecuteQuery(sql);dataGridView1.DataSource = dataTable;}/// <summary>/// 修改/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){// 正确的UPDATE语句string sql = "UPDATE Student SET Name='zhangsan' WHERE Name='张三'";// ExecuteNonQuery返回受影响的行数int affectedRows = SqlServerHelpers.ExecuteNonQuery(sql);// 显示操作结果if (affectedRows > 0){MessageBox.Show($"成功更新 {affectedRows} 条数据", "操作成功",MessageBoxButtons.OK, MessageBoxIcon.Information);// 刷新数据显示button1_Click(sender, e); // 调用查询按钮的点击事件重新加载数据}else{MessageBox.Show("没有数据被更新,请检查条件", "提示",MessageBoxButtons.OK, MessageBoxIcon.Warning);}           }/// <summary>/// 增加/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button3_Click(object sender, EventArgs e){// 正确的UPDATE语句string sql = "insert into Student values('王五','77','88','99')";// ExecuteNonQuery返回受影响的行数int affectedRows = SqlServerHelpers.ExecuteNonQuery(sql);// 显示操作结果if (affectedRows > 0){MessageBox.Show($"成功更新 {affectedRows} 条数据", "操作成功",MessageBoxButtons.OK, MessageBoxIcon.Information);// 刷新数据显示button1_Click(sender, e); // 调用查询按钮的点击事件重新加载数据}else{MessageBox.Show("没有数据被更新,请检查条件", "提示",MessageBoxButtons.OK, MessageBoxIcon.Warning);}}/// <summary>///删除/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button4_Click(object sender, EventArgs e){// 正确的UPDATE语句string sql = "delete from Student where Name='王五'";// ExecuteNonQuery返回受影响的行数int affectedRows = SqlServerHelpers.ExecuteNonQuery(sql);// 显示操作结果if (affectedRows > 0){MessageBox.Show($"成功更新 {affectedRows} 条数据", "操作成功",MessageBoxButtons.OK, MessageBoxIcon.Information);// 刷新数据显示button1_Click(sender, e); // 调用查询按钮的点击事件重新加载数据}else{MessageBox.Show("没有数据被更新,请检查条件", "提示",MessageBoxButtons.OK, MessageBoxIcon.Warning);}}}
}

在这里插入图片描述

5绑定表格数据源


数据源与数据库列名一致

相关文章:

C#对SQLServer增删改查

1.创建数据库 2.SqlServerHelper using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks;namespace WindowsFormsApp1 {internal class SqlServerHelper{//…...

模拟太阳系(C#编写的maui跨平台项目源码)

源码下载地址&#xff1a;https://download.csdn.net/download/wgxds/90789056 本资源为用C#编写的maui跨平台项目源码&#xff0c;使用Visual Studio 2022开发环境&#xff0c;基于.net8.0框架&#xff0c;生成的程序为“模拟太阳系运行”。经测试&#xff0c;生成的程序可运行…...

蓝桥杯14届 数三角

问题描述 小明在二维坐标系中放置了 n 个点&#xff0c;他想在其中选出一个包含三个点的子集&#xff0c;这三个点能组成三角形。然而这样的方案太多了&#xff0c;他决定只选择那些可以组成等腰三角形的方案。请帮他计算出一共有多少种选法可以组成等腰三角形&#xff1f; 输…...

redis sentinel和redis cluster的主从切换选举过程

引言 redis sentinel和redis cluster的主从切换选举过程不同&#xff0c;本文将从选举机制、核心差异对比两者的不同。 一、Redis Sentinel的选举机制 监控与故障判定 Sentinel集群通过心跳检测&#xff08;每秒一次PING&#xff09;监控主节点状态&#xff1a; 主观下线&…...

C++自学笔记 makefile

本博客参考南科大于仕琪教授的讲解视频和这位同学的学习笔记&#xff1a; 参考博客 感谢两位的分享。 makefile 的作用 用于组织大型项目的编译&#xff0c;是一个一键编译项目的脚本文件。 本博客通过四个版本的makefile逐步说明makefile的使用 使用说明 四个演示文件 …...

前端密码加密:保护用户数据的第一道防线

引言 在当今互联网时代&#xff0c;用户数据安全至关重要&#xff0c;而密码作为用户身份验证的核心凭证&#xff0c;其安全性更是重中之重。传统的前端开发中&#xff0c;密码常常以明文形式传输到服务器&#xff0c;这带来了严重的安全隐患。本文将深入探讨前端密码加密的必…...

HTML12:文本框和单选框

表单元素格式 属性说明type指定元素的类型。text、password、 checkbox、 radio、submit、reset、file、hidden、image 和button&#xff0c;默认为textname指定表单元素的名称value元素的初始值。type为radio时必须指定一个值size指定表单元素的初始宽度。当type为text 或pas…...

机器人厨师上岗!AI在餐饮界掀起新风潮!

想要了解人工智能在其他各个领域的应用&#xff0c;可以查看下面一篇文章 《AI在各领域的应用》 餐饮业是与我们日常生活息息相关的行业&#xff0c;而人工智能&#xff08;AI&#xff09;正在迅速改变这个传统行业的面貌。从智能点餐到食材管理&#xff0c;再到个性化推荐&a…...

MySQL开篇

文章目录 一、前置知识1. MySQL的安装2. 前置一些概念知识 二、MySQL数据库操作2.1 概念2.2 数据库的操作2.2.1创建数据库命令2.2.2 查看数据库2.2.3 选中数据库2.2.4 删除数据库 三、MySQL数据表操作3.1 概念3.2 数据表的操作3.2.1 创建表 一、前置知识 1. MySQL的安装 MySQ…...

Linux电脑本机使用小皮面板集成环境开发调试WEB项目

开发调试WEB项目&#xff0c;有时开发环境配置繁琐&#xff0c;可以使用小皮面板集成环境。 小皮面板官网&#xff1a; https://www.xp.cn/1.可以使用小皮面板安装脚本一键安装。登陆小皮面板管理后台 2.在“软件商店”使用LNMP一键部署集成环境。 3.添加网站&#xff0c;本…...

问题及解决01-面板无法随着窗口的放大而放大

在MATLAB的App Designer中&#xff0c;默认情况下&#xff0c;组件的位置是固定的&#xff0c;不会随着父容器的大小变化而改变。问题图如下图所示。 解决&#xff1a; 为了让Panel面板能够随着UIFigure父容器一起缩放&#xff0c;需要使用布局管理器&#xff0c;我利用 MATLA…...

操作系统原理实验报告

操作系统原理课程的实验报告汇总 实验三&#xff1a;线程的创建与撤销 实验环境&#xff1a;计算机一台&#xff0c;内装有VC、office等软件 实验日期&#xff1a;2024.4.11 实验要求&#xff1a; 1.理解&#xff1a;Windows系统调用的基本概念&#xff0c;进程与线程的基…...

《Linux命令行大全(第2版)》PDF下载

内容简介 本书对Linux命令行进行详细的介绍&#xff0c;全书内容包括4个部分&#xff0c;第一部分由Shell的介绍开启命令行基础知识的学习之旅&#xff1b;第二部分讲述配置文件的编辑&#xff0c;如何通过命令行控制计算机&#xff1b;第三部分探讨常见的任务与必备工具&…...

Java高频面试之并发编程-15

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天又来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;as-if-serial 是什么&#xff1f;单线程的程序一定是顺序执行的吗&#xff1f; as-if-serial 规则 定义&#xff1a; …...

Python-86:奇妙货币交易问题

问题描述 小R住在一个名为 X 国的国家&#xff0c;这里的货币非常特殊&#xff0c;面值为 V0,V1,V2,...,VnV0,V1,V2,...,Vn&#xff0c;并且 nn 可以无限大。该国的交易规则也很特别&#xff1a;在一次交易中&#xff0c;双方只能对每种面值的货币使用不超过两次。 例如&…...

Selenium的driver.get_url 和 手动输入网址, 并点击的操作,有什么不同?

我在搞爬取的时候&#xff0c;发现有些网站直接用driver.get(url) 跳转到目标特定的网址的时候&#xff0c;会被强制跳转到其他的网址上&#xff0c;但是如果是自己手动&#xff0c;在网址栏那里输入网址&#xff0c;并点回车&#xff0c;却能完成跳转。 这是在使用 Selenium …...

kotlin @JvmStatic注解的作用和使用场景

1. JvmStatic 的作用 JvmStatic 是 Kotlin 提供的一个注解&#xff0c;用于在 JVM 上将伴生对象&#xff08;companion object&#xff09;中的方法或属性暴露为 Java 静态方法或字段。 作用对象&#xff1a;只能用在 companion object 中的函数或属性。效果&#xff1a; 在 …...

GitHub中多个PR时,如何协同合并和管理

在 GitHub 中&#xff0c;当多个开发者同时提交多个 Pull Request&#xff08;PR&#xff09;时&#xff0c;合理的管理流程与协作策略能够确保代码库稳定、审查高效&#xff0c;并减少冲突与重工。总体而言&#xff0c;你需要&#xff1a; 1&#xff09;统一分支与命名策略&a…...

无人甘蔗小车履带式底盘行走系统的研究

1.1 研究背景与意义 1.1.1 研究背景 甘蔗作为全球最重要的糖料作物之一&#xff0c;在农业经济领域占据着举足轻重的地位。我国是甘蔗的主要种植国家&#xff0c;尤其是广西、广东、云南等地&#xff0c;甘蔗种植面积广泛&#xff0c;是当地农业经济的重要支柱产业。甘蔗不仅…...

通俗易懂版知识点:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?

实验开始前&#xff0c;先搞懂为什么要部署该集群&#xff1f; 这个方案的目标是让网站 永不宕机&#xff0c;即使某台服务器挂了&#xff0c;用户也感觉不到。它主要涉及 负载均衡&#xff08;LVS&#xff09; 高可用&#xff08;Keepalived&#xff09; 共享存储&#xff…...

各类有关NBA数据统计数据集大合集

这些数据我已上传大家在CSDN上直接搜索就可以&#xff01; 一、【2022-2023 NBA球员统计】数据集 关键词: 篮球 描述: 语境 该数据集每场比赛包含2022-2023常规赛NBA球员统计数据。 请注意&#xff0c;由团队更改产生了重复的球员名称。 * [2021-2022 NBA播放器统计]&#…...

《社交应用架构生存战:React Native与Flutter的部署容灾决胜法则》

React Native和Flutter作为当下热门的跨平台开发框架&#xff0c;在社交应用开发领域各显神通。今天&#xff0c;我们深入探索它们在高可用架构中的部署与容灾策略。 React Native凭借其独特优势&#xff0c;在社交应用开发中拥有一席之地。它基于JavaScript和React&#xff0…...

https,http1,http2,http3的一些知识

温故知新&#xff0c;突然有人问我项目中&#x1f914;有使用http3么&#xff0c;一下不知从何说起&#xff0c;就有了这篇文章的出现。 https加密传输&#xff0c;ssltls https 验证身份 提供加密&#xff0c;混合加密 &#xff1a; 对称加密 非对称加密 原理&#xff1a…...

go 通过汇编学习atomic原子操作原理

文章目录 概要一、原理1.1、案例1.2、关键汇编 二、LOCK汇编指令2.1、 LOCK2.2、 原理2.2.1、 缓存行2.2.2、 缓存一致性之MESI协议2.2.3、lock原理 三、x86缓存发展四、x86 DMA发展参考 概要 在并发操作下&#xff0c;对一个简单的aa2的操作都会出错&#xff0c;这是因为这样…...

WebRTC 源码原生端Demo入门-1

1、概述 我的代码是比较新的&#xff0c;基于webrtc源码仓库的main分支的&#xff0c;在windows下把源码仓库下载好了后&#xff0c;用visual stdio 2022打开进行编译调试src/examples/peerconnection_client测试项目,主要是跑通这个demo来入手和调试&#xff0c;纯看代码很难…...

Nipype 简单使用教程

Nipype 简单使用教程 基础教程**一、Nipype 核心概念与工作流构建****1. 基本组件****2. 工作流构建步骤** **二、常用接口命令速查表****1. FSL 接口****2. FreeSurfer 接口****3. ANTS 接口****4. 数据处理接口** **三、高级特性与最佳实践****1. 条件执行&#xff08;基于输…...

股票回购、股票减持和股票解禁对股票价格影响的综合分析

以下是关于股票回购、股票减持和股票解禁对股票价格影响的综合分析&#xff0c;结合了市场机制、财务指标及投资者行为等多维度因素&#xff1a; 一、股票回购对股价的影响 1. 正面影响 • 提升财务指标&#xff1a;回购减少流通股数量&#xff0c;在净利润不变的情况下&#…...

linux 三剑客命令学习

grep Grep 是一个命令行工具&#xff0c;用于在文本文件中搜索打印匹配指定模式的行。它的名称来自于 “Global Regular Expression Print”&#xff08;全局正则表达式打印&#xff09;&#xff0c;它最初是由 Unix 系统上的一种工具实现的。Grep 工具在 Linux 和其他类 Unix…...

【MySQL】第二弹——MySQL表的增删改查(CRUD)

文章目录 &#x1f393;一. CRUD&#x1f393;二. 新增(Create)&#x1f393;三. 查询(Rertieve)&#x1f4d6;1. 全列查询&#x1f4d6;2. 指定列查询&#x1f4d6;3. 查询带有表达式&#x1f4d6;4. 起别名查询(as )&#x1f4d6; 5. 去重查询(distinct)&#x1f4d6;6. 排序…...

Springboot中如何自定义配置类

在 Spring Boot 中&#xff0c;自定义配置类是通过 Configuration 注解定义的类&#xff0c;用于替代传统的 XML 配置&#xff0c;管理 Bean 的创建和应用程序的设置。 1. 创建自定义配置类 (1) 基本配置类 使用 Configuration 注解标记类&#xff0c;并在其中定义 Bean 方法…...