visual studio连接sql server数据库
目录
-
- 1、为什么要建立连接
- 2、在sql server中建立数据库
- 3、visual studio连接sql server数据库
- 4、学生信息管理系统页面布局
- 5、添加事件逻辑
-
- 5.1 页面跳转
- 5.2 读取学生信息
- 5.3 查询学生信息
- 5.4 修改学生信息
- 5.5 删除学生信息
- 5.6 添加学生信息
bilibili演示视频
github源码
1、为什么要建立连接
sql server是关系数据库管理系统,专门用来查询、操作和管理数据库。visual studio和sql server连接后,可以读取数据库中的数据,还能对数据进行增删改查。比如,我们在visual studio中用C#语言开发一个学生信息管理软件,具体功能有读取学生信息、更改学生信息、删除学生信息、添加学生信息等,这些学生的信息就存储在sql server中,软件可以根据用户的操作读取和更改数据库中的信息。
2、在sql server中建立数据库
打开SQL Server Management Studio(SSMS)软件,连接到服务器。
选择“数据库”,右键,“新建数据库”,建立一个学生信息数据库,数据库名为StuMes。
输入数据库名称,点击确定。这样,学生信息数据库就建立好了。
在数据库中新建一个表,用来存储学生信息,包括姓名、年龄、性别、学号。
点击“表”,右键,“新建”–>“表”。
输入列名和数据类型。
保存,输入表名称Table_Stu,点击确定。
选择StuMes数据库,右键,刷新,这时就可以看到刚刚新建的表了,目前表中只包含列名,没有实际的内容。当然,列的添加也可以通过代码的方式,我这里是手动添加的。
向表中添加学生信息。点击“新建查询”,通过代码的方式向表中添加5个学生的信息。
代码的意思是,向Table_Stu表中插入这5个学生的信息。
insert into Table_Stu(Name,Age,Sex,StuNum) values('小王','18','男','12345')
insert into Table_Stu(Name,Age,Sex,StuNum) values('小白','20','男','12323')
insert into Table_Stu(Name,Age,Sex,StuNum) values('小黑','19','男','11223')
insert into Table_Stu(Name,Age,Sex,StuNum) values('小赵','18','女','32145')
insert into Table_Stu(Name,Age,Sex,StuNum) values('小兰','21','男','13254')
全选代码,点击执行,这样就将5条学生信息记录到了数据库中的表中了。
3、visual studio连接sql server数据库
首先,新建一个C# Windows窗体应用 项目,我这里项目名称为DataConnect,点击确定。
项目建立好后,点击“工具”–>“连接到数据库”,
数据源选择“Microsoft SQL Server(SqlClient)”,还需要输入服务器名,以及选择数据库名称。
在SQL Server Management Studio软件点击“文件”–>“连接对象资源管理器”,复制“服务器名称”,粘贴过来,这时就可以通过下拉框选择刚创建的学生信息数据库了。点击确定。
这样就可以在visual studio“服务器资源管理器”中看到连接到的数据库了。
4、学生信息管理系统页面布局
双击打开Form1.cs文件,该文件对应的是图中所示的窗体,我们向窗体中拖入控件,包括1个DataGridView用于显示数据库表格数据,和5个Button用于触发事件,打开跳转界面。我们为学生信息管理系统设置了5个功能,分别是学生信息读取、学生信息查询、学生信息修改、学生信息删除、学生信息添加,DataGridView用于显示学生信息。具体的控件添加方法见WinForms添加Button控件。
将第一个Button的Name改为“btnRead”,text改为“读取”;将第二个Button的Name改为“btnFind”,text改为“查询”;将第三个Button的Name改为“btnChange”,text改为“修改”;将第四个Button的Name改为“btnDel”,text改为“删除”;将第五个Button的Name改为“btnAdd”,text改为“添加”。将窗体的Text改为“学生信息管理系统”。就这样,第一个窗体的布局完毕。
点击项目,右键,新建Windows窗体,新建窗体作为跳转界面,当主界面点击“查询”、“修改”、“删除”、“添加”后,会跳转到相应窗体。
5、添加事件逻辑
上面我们完成了页面的绘制,但是仅仅这样并没有什么用,我们运行代码后,点击界面并不会发生任何事情,这是因为我们没有添加逻辑,也就是没有写代码,winform并不知道我们添加的这些控件是用来干什么的,下面,就依次来添加功能代码。
5.1 页面跳转
双击“查询”控件,会跳转到该控件背后的代码。当鼠标点击控件后,btnFind_Click()函数会被执行,我们要实现的效果是点击“查询”后,页面跳转,因此就需要将代码添加到该函数下。
同样的,给“修改”、“删除”、“添加”也加上相同的功能。
5.2 读取学生信息
从数据库表格中读取学生信息,DataGridView显示。
点击项目,右键,添加类。默认命名为Class1.cs。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace DataConnect
{class Class1{public SqlConnection conn;public SqlConnection Connect() //连接数据库{//Data Source指定本地数据库,Initial Catalog指定数据库名称//Integrated Security=True 表示使用集成安全性,也就是说,用户//的Windows帐户身份将被用来验证数据库连接,而不是使用账号和密码。string str = @"Data Source=.;Initial Catalog=StuMes;Integrated Security=True"; //数据库连接字符串//string constr = "server=localhost;database=数据库名;uid=账号;pwd=密码;";conn = new SqlConnection(str); //创建SqlConnection对象conn.Open(); //打开数据库连接return conn;}public SqlCommand Command(string sql) //执行一条sql命令{SqlCommand cmd = new SqlCommand(sql, Connect());return cmd;}public int Execute(string sql) //获取执行sql命令后,数据库表中数据条数的更新数量,用来判断命令是否执行成功{return Command(sql).ExecuteNonQuery();}public SqlDataReader Read(string sql) //读取数据库中的数据{return Command(sql).ExecuteReader();}public void Close() //关闭数据库{conn.Close();}}
}
双击“读取”,进入代码,在函数中输入代码,我们要实现的效果是,点击“读取”后,程序获取数据库数据,返回连接结果,并将获取的数据显示在DataGridView。
private void btnRead_Click(object sender, EventArgs e){Class1 c1 = new Class1(); //创建类对象c1.Connect(); //连接并打开数据库string sql = "SELECT * FROM Table_Stu"; //选择表中所有数据SqlCommand co = c1.Command(sql); //执行命令SqlDataAdapter adapt = new SqlDataAdapter();adapt.SelectCommand = co;DataSet ds = new DataSet();adapt.Fill(ds, "t"); //第二个参数:表名,随便取dataGridView1.DataSource = ds.Tables["t"];c1.Close();}
5.3 查询学生信息
通过学号进行学生信息的查询,如果查询的学生在数据库中,则返回学生的完整信息,否则,给出提示信息。
private void btnOk_Click(object sender, EventArgs e){string num = txtNum.Text;if(num!=""){Class1 c1 = new Class1();c1.Connect();string sql = $"select * from Table_Stu where StuNum={int.Parse(num)}";SqlDataReader reader = c1.Read(sql);bool flag = reader.Read();if (flag==true){MessageBox.Show("查询成功");SqlCommand co = c1.Command(sql); //执行命令SqlDataAdapter adapt = new SqlDataAdapter();adapt.SelectCommand = co;DataSet ds = new DataSet();adapt.Fill(ds, "t"); //第二个参数:表名,随便取dataGridView1.DataSource = ds.Tables["t"];}else{MessageBox.Show("不存在输入的学号信息");dataGridView1.DataSource = null;return;}c1.Close();}else{MessageBox.Show("请输入学号");}}private void btnExit_Click(object sender, EventArgs e){this.Close();}
5.4 修改学生信息
先判断输入的学号是否存在于数据库中,如果不存在,就返回提示信息;否则,就进行修改。
private void btnExit_Click(object sender, EventArgs e){this.Close();}private void btnOk_Click(object sender, EventArgs e){string name = txtName.Text;string age = txtAge.Text;string sex = comSex.Text;string num = txtNum.Text;if (num != ""){Class1 c1 = new Class1();c1.Connect();string sql = $"select * from Table_Stu where StuNum={int.Parse(num)}";SqlDataReader reader = c1.Read(sql);bool flag = reader.Read();if (flag == true){//MessageBox.Show("查询成功");if (name == "" || age == "" || sex == ""){MessageBox.Show("请将信息填写完整");}else{sql = $"delete from Table_Stu where StuNum={int.Parse(num)}";c1.Execute(sql); //执行命令sql = $"insert into Table_Stu values('{name}','{age}','{sex}','{num}')";c1.Execute(sql);MessageBox.Show("修改信息成功");}}else{MessageBox.Show("不存在输入的学号信息");return;}c1.Close();}else{MessageBox.Show("请输入学号");}}}}
5.5 删除学生信息
输入学号,判断是否存在于数据库中,没有则返回提示信息,有则删除该条信息。
private void btnExit_Click(object sender, EventArgs e){this.Close();}private void btnOk_Click(object sender, EventArgs e){string num = txtNum.Text;if(num!=""){Class1 c1 = new Class1();c1.Connect();string sql = $"select * from Table_Stu where StuNum={int.Parse(num)}";SqlDataReader reader = c1.Read(sql);bool flag = reader.Read();if (flag == true){sql = $"delete from Table_Stu where StuNum={int.Parse(num)}";c1.Execute(sql); //执行命令MessageBox.Show("删除信息成功");}else{MessageBox.Show("不存在输入的学号信息");return;}c1.Close();}else{MessageBox.Show("请输入学号");}}
5.6 添加学生信息
先判断输入的学生学号在数据库中是否存在,如果存在,则返回提示信息,否则就添加信息到数据库,同时,输入的信息需要完整。
private void btnExit_Click(object sender, EventArgs e){this.Close();}private void btnOk_Click(object sender, EventArgs e){string name = txtName.Text;string age = txtAge.Text;string sex = comSex.Text;string num = txtNum.Text;Class1 c1 = new Class1();c1.Connect();string sql = "select * from Table_Stu";SqlDataReader reader = c1.Read(sql);reader.Read();string tmp = reader[3].ToString();if (name == "" || age == "" || sex == "" || num == ""){MessageBox.Show("请输入完整信息");}else{if(tmp==num){MessageBox.Show("您输入的学号已存在,请重新输入");return;}else{sql = $"insert into Table_Stu values('{name}','{age}','{sex}','{num}')";c1.Execute(sql);MessageBox.Show("添加信息成功");}}c1.Close();}
相关文章:
visual studio连接sql server数据库
目录 1、为什么要建立连接2、在sql server中建立数据库3、visual studio连接sql server数据库4、学生信息管理系统页面布局5、添加事件逻辑 5.1 页面跳转5.2 读取学生信息5.3 查询学生信息5.4 修改学生信息5.5 删除学生信息5.6 添加学生信息 bilibili演示视频 github源码 1、…...
磁盘的相关操作
1.让U盘连接到虚拟机中 两种方法:1>在弹出的窗口中设置 2>通过选项设置 菜单栏---->虚拟机----->可移动设备---->找到U盘名---->连接到虚拟机中 2.查看U盘是否已被成功识别 方法:ls /dev/sd* 显示包含除了sda外的文件说明U盘连接成功…...
数据结构与算法Python版 图的应用与广度优先搜索
文章目录 一、图的应用-词梯问题二、图的广度优先搜索 一、图的应用-词梯问题 词梯问题 Word Ladder 从一个单词演变到另一个单词,其中的过程可以经过多个中间单词。要求是相邻两个单词之间差异只能是1个字母如FOOL变SAGE:FOOL >> POOL >>…...
Unity——InputField组件自动换行和enter键换行
文章目录 输入框实现换行功能 输入框实现换行功能 在Unity中,如果你想要在输入框(如InputField)中实现换行功能 ,你需要确保以下几点: 1、文本组件支持多行: 确保你的InputField的文本组件(Te…...
solr9.7 单机安装教程
1.环境要求:jdk11以上 2.下载wget https://dlcdn.apache.org/solr/solr/9.7.0/solr-9.7.0.tgz 3.解压 4.修改solr.in.sh配置 5.启动命令 bin/solr start 6.创建core bin/solr create -c <core名称> 注意:用solr ui界面创建,会提示找不到solrconfig.xml和m…...
虚幻引擎UE5渲染不够快的解决办法
虚幻引擎是由Epic Games公司开发的一款功能强大、全球最开放且先进的实时 3D 创作工具,广泛应用于游戏、影视、建筑可视化、虚拟现实等多个领域!虚幻引擎UE5如何实现在网上极速渲染呢?本文提供云渲染和云电脑两套方案用于渲染提速ÿ…...
基于STM32的智能家居环境监控系统设计
目录 引言系统设计 硬件设计软件设计系统功能模块 环境监控模块控制模块显示模块系统实现 硬件实现软件实现系统调试与优化结论与展望 1. 引言 随着智能家居技术的发展,环境监控系统已经成为家居管理的重要组成部分。智能家居环境监控系统通过实时监测室内温度、湿…...
Android service framework笔记
1. 网络摘录如何添加一个Application Framework Service(一)(without native code) 如何添加一个Application Framework Service(二)(with native code) 2.书籍摘录...
【图像处理lec10】图像压缩
目录 一、图像压缩基础 1、图像压缩的基本概念 2、数据冗余与压缩比 3、三种主要的数据冗余类型 4、保真度评估标准(Fidelity Criteria) 5、应用与实践 二、图像压缩模型 1、图像压缩模型概述 (1)压缩系统的结构 &#…...
flask后端开发(2):URL与视图
目录 URL定义request获取请求参数 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git URL定义 from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello World!app.route(/profile) def profile():return 我是个人…...
Linux Ubuntu24配置安装Java
目录 一. 通过apt安装java1.1 列出所有可用java版本1.2 安装指定java版本1.3 安装后确认1.4 /etc/alternatives/目录 二. 手动安装java 一. 通过apt安装java 1.1 列出所有可用java版本 apt list openjdk-*jdk apluserubuntu24-01:~$ apt list openjdk-*jdk Listing... Done …...
线段树例题题解
卫星覆盖(NOI1997) 题面: SERCOI(Space-Earth Resource Cover-Observe lnstitute) 是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 -SERCOI-308。这种卫星可以…...
极品飞车6的游戏手柄设置
极品飞车,既可以用键盘来控制车辆的前进、后退、左转、右转、加速与减速,也可以使用游戏手柄来操作车辆的运行。需要注意的是,极品飞车虽然支持手柄,但是仅支持常见的北通、罗技还有部分Xbox系列的手柄,至于其他的PS4手…...
为何DeepSeek V3模型为自己是ChatGPT?
DeepSeek V3 AI模型:为何它认为自己是ChatGPT? 引言 在人工智能领域,最新的技术进展总是令人兴奋。最近,一家资金雄厚的中国AI实验室DeepSeek发布了一款新的AI模型——DeepSeek V3,它在多个流行基准测试中超越了许多…...
【每日学点鸿蒙知识】人脸活体检测、NodeController刷新、自动关闭输入框、Row设置中间最大宽、WebView单例
1、HarmonyOS 人脸活体检测调用? H5调用应用侧方法可参考以下demo: index.ets Web()//注册方法.javaScriptProxy({object: this.testObj,name: "testObjName",methodList: ["getLocationTS"],controller: this.webController})cla…...
深入理解Composer自动加载机制
Composer是PHP生态系统中最常用的依赖管理工具之一,它不仅能够帮助开发者管理项目的依赖关系,还能够自动加载这些依赖项。自动加载机制是Composer的核心功能之一,通过自动加载,开发者可以在运行时按需加载所需的类和文件ÿ…...
SQL SERVER日常运维巡检系列之-日志
前言 做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。 本系列旨在解决一些常见的困扰: 不知道巡检哪些东西不知道怎么样便捷体检机器太多体检麻烦生成报告困难,无…...
2024年中国新能源汽车用车发展怎么样 PaperGPT(二)
用车趋势深入分析 接上文,2024年中国新能源汽车用车发展怎么样 PaperGPT(一)-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程:2024年纯电车辆月均行驶超过1500公里&…...
【数据结构】线性数据结构——链表
1. 定义 链表是一种线性数据结构,由多个节点(Node)组成。每个节点存储数据和指向下一个节点的指针。与数组不同,链表的节点不需要在内存中连续存储。 2. 特点 动态存储: 链表的大小不固定,可以动态增加或…...
Spring中的设计模式
Spring中的设计模式 控制反转(IoC)和依赖注入(DI) IoC 是一个原则,而不是一个模式,以下模式(但不限于)实现了 IoC 原则。 **Spring IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置…...
微信小程序给外面的view设置display:flex;后为什么无法给里面的view设置宽度
如果父盒子view设置了display:flex,子view设置宽度值无效,宽度值都是随着内容多少而改变: 问题视图: 原因: flex布局元素的子元素,自动获得了flex-shrink的属性 解决方法: 给子view增加:fl…...
异步爬虫之aiohttp的使用
在上一篇博客我们介绍了异步爬虫的基本原理和 asyncio 的基本用法,并且在最后简单提及了使用aiohttp 实现网页爬取的过程。本篇博客我们介绍一下 aiohttp 的常见用法。 基本介绍 前面介绍的 asyncio模块,其内部实现了对 TCP、UDP、SSL协议的异步操作&a…...
vue3大屏实现;使用使用CSS Grid实现大屏
文章目录 一、效果1.效果2.使用CSS Grid3.插件4.html代码5.index.scss代码 一、效果 1.效果 方案:采用CSS的Grid布局,实现首页大屏模块划分和自适应功能; 布局: 大屏主要内容,高宽比是1920*1080;即16:9的…...
安卓入门二 Kotlin基础
Kotlin Kotlin的历史 Kotlin由Jet Brains公司开发设计,2011年公布第一版,2012年开源。 2016年发布1.0正式版,并且Jet Brains在IDEA加入对Kotlin的支持,安卓自此又有新的选择。 2019年谷歌宣布Kotlin成为安卓第一开发语言&#x…...
在ubuntu上如何使用sdkman安装两个版本的java并进行管理和维护
在Ubuntu上使用SDKMAN安装和管理两个不同版本的Java的步骤如下: 安装SDKMAN 打开终端,使用以下命令安装SDKMAN: curl -s "https://get.sdkman.io" | bash这个命令会下载并运行SDKMAN!的安装脚本。 安装完成后,需要打开…...
《代码随想录》Day20打卡!
《代码随想录》二叉树:二叉搜索树的最近公共祖先 本题的完整题目如下: 本题的思路如下: 1.之前写过一个二叉树的最近公共祖先,本题相比于另一道题,不同是本题是二叉搜索树,有一些可用的性质。 2.本题使用递…...
GPIO相关寄存器,点灯
目录 一.输入模式 1.浮空输入 2.上拉输入 3.下拉输入 4.模拟输入 二.输出模式 1.推挽输出 2.开漏输出 三.寄存器 1.寄存器的作用 2.功能与类型 3.控制某一引脚输出电压来点灯所需要控制的寄存器 1.打开对应时钟开关 2.端口模式寄存器 ---输出模式 3.输出类型寄存…...
25 - GRACE Mascon数据缺失月份数据插值
25 - GRACE Mascon数据缺失月份数据插值 0 引言1 程序包获取1.1 获取ssa插值算法程序包1.2 try2 利用ssa对grace mascon数据进行插值3 完整代码及相关函数3.1 Main程序3.1 子程序4 总结0 引言 💦💦💦💦💦 上篇介绍了grace mascon数据提取及简单的分析过程,仔细…...
深入理解Redis:从理论到实践的Java之旅
Redis,这个开源的内存数据结构存储系统,自2009年诞生以来,凭借其丰富的数据结构、快速的读写性能以及高度的可扩展性,迅速成为了分布式系统和高并发应用中的明星组件。本文将带你深入理解Redis,并通过Java语言的实践示…...
REDIS的集群
REDIS的集群模式: 主从模式:redis高可用的基础,哨兵和集群都是建立在此基础之上 特点: 主从模式和数据库的主从模式(工作模式)是一样的,主负责写入,然后把写入到数据同步到从&…...
linux——vi命令常用操作
一、vi模式 vi一般分为三种模式,分别是命令行模式、插入模式、末行模式 1.命令模式:控制屏幕光标的移动,按 :进入末行模式,按 i(其他插入命令也可) 进入插入模式; 2.插入模式&…...
SKETCHPAD——允许语言模型生成中间草图,在几何、函数、图算法和游戏策略等所有数学任务中持续提高基础模型的性能
概述 论文地址:https://arxiv.org/pdf/2406.09403 素描是一种应用广泛的有效工具,包括产生创意和解决问题。由于素描能直接传达无法用语言表达的视觉和空间信息,因此从古代岩画到现代建筑图纸,素描在世界各地被用于各种用途。儿童…...
计算机网络•自顶向下方法:网络应用原理
网络应用原理 网络应用架构 目前有两种主流的网络应用架构: 客户-服务器架构(Client-server) 服务器(server): 有一台总是在线的主机,上面运行着服务器程序(server)服务器主机(server machine)具有永久的…...
python: Oracle Stored Procedure query table
oracel sql script CREATE OR REPLACE PROCEDURE SelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId paramSchoolId; END SelectSchool; /-- 查询所有 CREATE OR REPLACE PROCEDURE SelectScho…...
Webpack学习笔记(6)
首先搭建一个基本的webpack环境: 执行npm init -y,创建pack.json,保存安装包的一些信息 执行npm install webpack webpack-cli webpack-dev-server html-webpack-plugin -D,出现node_modules和package-lock.json。 1.source-Ma…...
数仓建模:如何进行实体建模?
目录 1 如何进行实体建模? 业务建模 领域建模 逻辑建模 2 实体建模具体步骤 需求分析...
C++ 设计模式:享元模式(Flyweight Pattern)
链接:C 设计模式 链接:C 设计模式 - 单例模式 享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享尽可能多的相同对象来减少内存使用和提高性能。享元模式适用于大量细粒度对象的场景,这些对象之…...
idea报错:There is not enough memory to perform the requested operation.
文章目录 一、问题描述二、先解决三、后原因(了解) 一、问题描述 就是在使用 IDEA 写代码时,IDEA 可能会弹一个窗,大概提示你目前使用的 IDEA 内存不足,其实就是提醒你 JVM 的内存不够了,需要重新分配。弹…...
Kubernetes Gateway API-2-跨命名空间路由
1 跨命名空间路由 Gateway API 具有跨命名空间路由的核心支持。当多个用户或团队共享底层网络基础设施时,这很有用,但必须对控制和配置进行分段,以尽量减少访问和容错域。 Gateway 和 Route(HTTPRoute,TCPRoute,GRPCRoute) 可以部署到不同的命名空间中,路由可以跨命名空间…...
【视觉SLAM:四、相机与图像】
相机模型 相机模型是计算机视觉中的重要内容,用于描述真实相机如何将三维世界投影到二维图像平面。以下从多个角度介绍常见的相机模型。 针孔相机模型 针孔相机模型是最简单的相机模型,用数学公式描述从三维世界到二维图像平面的映射关系。核心公式如…...
【spring】参数校验Validation
前言 在实际开发中,我们无法保证客户端传来的请求都是合法的。比如一些要求必传的参数没有传递,传来的参数长度不符合要求等,这种时候如果放任不管,继续执行后续业务逻辑,很有可能就会出现意想不到的bug。 有人可能会…...
基于 InternLM 和 LangChain 搭建你的知识库
本文基于InternStudio 算力平台利用 InternLM 和 LangChain 搭建知识库。 InternStudio (OpenAIDE)[1] 是面向算法开发者与研究员的云端集成开发环境。基于「容器实例」,「镜像中心」,「分布式训练」,「公开数据集」模块为用户提供 “算力、算…...
C++ 设计模式:备忘录模式(Memento Pattern)
链接:C 设计模式 链接:C 设计模式 - 状态模式 备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下捕获和恢复对象的内部状态。这个模式在需要保存和恢复对象状态的场景中非常有用ÿ…...
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
SMEC88ST SDK开发包下载 目前市场上很多嵌入式产品方案都是可以破解复制的,主要是因为方案主芯片不具备防破解的功能,这就导致开发者投入大量精力、财力开发的新产品一上市就被别人复制,到市场上的只能以价格竞争,最后工厂复制的产…...
利用JavaScript实现猜数字
一,使用while循环实现 以下代码为固定数字非随机数,答案通过弹窗来设置,结果太唯一。 let number;while (true) {number prompt(我正在想一个1-10的数字,你猜猜看?);switch (number) {case "1":alert("小了&quo…...
terminal_学习
参考: 让你的 Mac 提前用上 macOS Catalina 的 Shell——Oh My Zsh 配置指南 https://sspai.com/post/55176MAC 终端美化教程(来个全套 )https://blog.csdn.net/weixin_42326144/article/details/121957795 x.1 zsh做美化(安装oh…...
MongoDB 管理工具
关于 MongoDB 的管理工具,目前市面上有多款优秀的 GUI 工具可供选择。这些工具旨在提高 MongoDB 的开发和管理效率,使得数据库操作更加便捷和高效。以下是一些推荐的工具: MongoDB Compass:这是 MongoDB 官方提供的一款 GUI 管理工…...
46. Three.js案例-创建颜色不断变化的立方体模型
46. Three.js案例-创建颜色不断变化的立方体模型 实现效果 知识点 Three.js基础组件 WebGLRenderer THREE.WebGLRenderer是Three.js提供的用于渲染场景的WebGL渲染器。它支持抗锯齿处理,可以设置渲染器的大小和背景颜色。 构造器 antialias: 是否开启抗锯齿&am…...
机器学习-高斯混合模型
文章目录 高斯混合模型对无标签的数据集:使用高斯混合模型进行聚类对有标签的数据集:使用高斯混合模型进行分类总结实战 高斯混合模型 对无标签的数据集:使用高斯混合模型进行聚类 对有标签的数据集:使用高斯混合模型进行分类 总结…...
Linux官文转载-- Linux 内核代码风格
Warning 此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 这是一个简短的文档,描述了 linux 内核的首选代码风格。代码风格是因人而异的&a…...