C#+SQLServer 用户信息增删改查实战

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 本文目录1. 概述2. 数据库设计3. 项目开发3.1 界面设计3.2 定义数据库访问字符串、数据库连接3.2 查询用户3.3 新增用户3.4 删除用户3.5 修改用户4. 小结

1. 概述

本文使用C#语言,SQLServer数据库,实现用户信息增加、删除、修改、查询功能。其中展示用户信息使用了DataGridView控件。

2. 数据库设计

数据库UserManageProjectDb,含user表,表结构如下:

USE [UserManageProjectDb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[user](
  [id] [int] IDENTITY(1,1) NOT NULL,
  [name] [nvarchar](50) NULL,
  [sex] [nvarchar](50) NULL,
  [age] [int] NULL,
  [password] [nvarchar](50) NULL,
  [idNum] [nvarchar](50) NULL
) ON [PRIMARY]
GO

3. 项目开发

3.1 界面设计

设计如下图

image.png

3.2 定义数据库访问字符串、数据库连接

因为需要访问SQL Server数据库,所以定义类变量,存储访问字符串和数据库连接:


 protected static String strCon = "Data Source=127.0.0.1;Initial Catalog=UserManageProjectDb;Integrated Security=False;User ID=sa;Password=123456";

       protected SqlConnection con = new SqlConnection(strCon);

1

2

3.2 查询用户

当点击查询用户按钮时,从数据库中查出用户信息,显示到数据表格中:


       // 查询用户

       private void buttonQuery_Click(object sender, EventArgs e)

       {

           // 打开数据库连接

           con.Open();

           // 定义操作数据库的sql语句

           string sql = "select * from [user]";

           // 形成操作命令

           SqlCommand cmd = new SqlCommand(sql, con);

           // 执行命令

           SqlDataReader sdr = cmd.ExecuteReader();

           // 读取结果赋给数据源

           BindingSource bs = new BindingSource();

           bs.DataSource = sdr;

           // 显示

           this.dataGridView1.DataSource = bs;

           // 修改列标题

           this.dataGridView1.Columns["id"].HeaderText = "编号";

           this.dataGridView1.Columns["name"].HeaderText = "姓名";

           this.dataGridView1.Columns["sex"].HeaderText = "性别";

           this.dataGridView1.Columns["age"].HeaderText = "年龄";

           this.dataGridView1.Columns["password"].HeaderText = "密码";

           this.dataGridView1.Columns["idNum"].HeaderText = "身份证号";

           con.Close();

       }


3.3 新增用户

当点击新增用户时,将文本框中输入的用户信息,新增到数据库中,然后再执行一次查询,以便在界面上加载最新用户列表。


   // 新增用户

       private void buttonAdd_Click(object sender, EventArgs e)

       {

           // 打开连接

           con.Open();

           // 定义sql语句

           string sql = "insert into [user] (name,sex,age,password,idNum)" +

               "values('"+textName.Text+"','"+textSex.Text+"','"+textAge.Text+"','"+

               textPassword.Text+"','"+textIdNum.Text+"')";

           // 创建命令

           SqlCommand cmd = new SqlCommand(sql, con);

           cmd.ExecuteNonQuery();

           // 及时关闭连接

           con.Close();

           // 接着立即查询

           this.buttonQuery_Click(sender,e);

       }


3.4 删除用户

点击删除按钮时,删除选中行对应的用户数据,然后刷新。


 // 删除数据

       private void buttonRemove_Click(object sender, EventArgs e)

       {

           string id=this.dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();

           // 打开连接

           con.Open();

           // 定义sql语句

           string sql = "delete from [user] where id="+id;

           // 创建命令

           SqlCommand cmd = new SqlCommand(sql, con);

           cmd.ExecuteNonQuery();

           // 及时关闭连接

           con.Close();

           // 接着立即查询

           this.buttonQuery_Click(sender, e);

       }


3.5 修改用户

首先,选中用户信息发生变化时,应将用户信息带入下面的文本框:


   // 选中行发生变化时候

       private void dataGridView1_SelectionChanged(object sender, EventArgs e)

       {

           if (this.dataGridView1.SelectedRows.Count == 0)

               return;

           string id = this.dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();

           string name = this.dataGridView1.SelectedRows[0].Cells["name"].Value.ToString();

           string sex = this.dataGridView1.SelectedRows[0].Cells["sex"].Value.ToString();

           string age= this.dataGridView1.SelectedRows[0].Cells["age"].Value.ToString();

           string password = this.dataGridView1.SelectedRows[0].Cells["password"].Value.ToString();

           string idNum = this.dataGridView1.SelectedRows[0].Cells["idNum"].Value.ToString();


           textName.Text = name;

           textSex.Text = sex;

           textAge.Text = age;

           textPassword.Text = password;

           textIdNum.Text = idNum;

       }


然后点击修改后,将文本框内容,提交到选中行对应的记录中。


 // 修改用户

       private void buttonEdit_Click(object sender, EventArgs e)

       {

           string id = this.dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();

           string name = textName.Text;

           string sex = textSex.Text;

           string age = textAge.Text;

           string password = textPassword.Text;

           string idNum = textIdNum.Text;

           // 打开连接

           con.Open();

           // 定义sql语句

           string sql = "update [user] set name='"+name+"',sex='"+sex+"',age='"+age+"',password='"+password

               +"',idNum='"+idNum+"' where id='"+id+"'";

           // 创建命令

           SqlCommand cmd = new SqlCommand(sql, con);

           cmd.ExecuteNonQuery();

           // 及时关闭连接

           con.Close();

           // 接着立即查询

           this.buttonQuery_Click(sender, e);

       }


4. 小结

本节用一个非常原始的方式,实现了用户信息的增删改查,具备一定的借鉴意义。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
数据采集 JavaScript C#
C#图像爬虫实战:从Walmart网站下载图片
C#图像爬虫实战:从Walmart网站下载图片
|
3月前
|
数据采集 存储 C#
C# 爬虫技术:京东视频内容抓取的实战案例分析
C# 爬虫技术:京东视频内容抓取的实战案例分析
|
1月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
2月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
2月前
|
SQL 网络协议 数据库连接
已解决:连接SqlServer出现 provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程【C#连接SqlServer踩坑记录】
本文介绍了解决连接SqlServer时出现“provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程”错误的步骤,包括更改服务器验证模式、修改sa用户设置、启用TCP/IP协议,以及检查数据库连接语句中的实例名是否正确。此外,还解释了实例名mssqlserver和sqlserver之间的区别,包括它们在默认设置、功能和用途上的差异。
|
4月前
|
算法 C#
C#实战 | 求解《九章算术》盈不足之共买物
【7月更文挑战第8天】中国古代数学成就显著,《九章算术》展示了先进的算法,如分数运算和方程解法,领先世界数百年。项目示例通过控制台应用,运用for循环和if条件语句,模拟解决书中盈不足问题,展示了解决数学问题的编程方法。
41 6
C#实战 | 求解《九章算术》盈不足之共买物
|
4月前
|
算法 C#
C#实战 | 求解《丘建算经》百鸡问题
【7月更文挑战第9天】《丘建算经》的百鸡问题是一个经典的不定方程问题,用C#解决时,通过三重嵌套循环穷举公鸡、母鸡和小鸡的组合。代码示例中,外层循环分别对应公鸡和母鸡,而小鸡数量由总钱数和已知鸡种计算得出,避免了额外的内层循环。使用`if`判断确保总数量正确。注意,除法运算可能导致整数截断错误,需使用3.0保证浮点数除法的准确性。这种方法虽然效率较低,但能确保找到所有可行解。
42 1
C#实战 | 求解《丘建算经》百鸡问题
|
2月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
115 0
|
3月前
|
关系型数据库 MySQL 大数据
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
257 2
|
3月前
|
数据安全/隐私保护 C# UED
利用 Xamarin 开展企业级移动应用开发:从用户登录到客户管理,全面演示C#与Xamarin.Forms构建跨平台CRM应用的实战技巧与代码示例
【8月更文挑战第31天】利用 Xamarin 进行企业级移动应用开发能显著提升效率并确保高质量和高性能。Xamarin 的跨平台特性使得开发者可以通过单一的 C# 代码库构建 iOS、Android 和 Windows 应用,帮助企业快速推出产品并保持一致的用户体验。本文通过一个简单的 CRM 示例应用演示 Xamarin 的使用方法,并提供了具体的代码示例。该应用包括用户登录、客户列表显示和添加新客户等功能。此外,还介绍了如何增强应用的安全性、数据持久化、性能优化及可扩展性,从而构建出功能全面且体验良好的移动应用。
51 0