C#SQL Server数据库基本操作(增、删、改、查)

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: C#SQL Server数据库基本操作(增、删、改、查)

C#连接数据库是一项非常重要的任务,在软件开发中,我们通常需要将数据存储到数据库中,并且需要使用C#代码在应用程序中与数据库进行交互。在本文中,我们将学习如何使用C#连接到数据库,以及如何完成常见的增删改查操作。

1.连接数据库

首先要连接数据库,需要使用System.Data.SqlClient 命名空间中的SqlConnection类。下面是一个连接到Microsoft SQL Server数据库的基本示例:

using System.Data.SqlClient;
 
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase; User ID=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
 
try
{
    //打开数据库连接
    connection.Open();
 
    //执行数据库操作
    //...
 
}
catch (Exception ex)
{
    //处理异常
    Console.WriteLine(ex.Message);
}
finally
{
    //关闭数据库连接
    connection.Close();
}

在上述代码中,我们定义了一个连接字符串,其中包含数据库的服务器名称、数据库名称、用户名和密码等信息。然后,我们使用SqlConnection类创建了一个connection对象,并使用Open方法打开数据库连接,连接成功后即可执行相关操作。

2.增加数据

要将数据添加到数据库中,需要使用SqlCommand类和ExecuteNonQuery方法。下面是将一条新的学生信息添加到学生表中的示例:

using System.Data.SqlClient;
 
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase; User ID=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
 
try
{
    //打开数据库连接
    connection.Open();
 
    //定义SQL语句
    string sql = "INSERT INTO Students (Name, Age, Gender) VALUES ('John', 20, 'Male');";
 
    //创建SqlCommand对象
    SqlCommand command = new SqlCommand(sql, connection);
 
    //执行SQL语句
    int rowsAffected = command.ExecuteNonQuery();
    Console.WriteLine("Rows Affected: " + rowsAffected);
}
catch (Exception ex)
{
    //处理异常
    Console.WriteLine(ex.Message);
}
finally
{
    //关闭数据库连接
    connection.Close();
}

在上述代码中,我们成功连接到数据库,并使用SqlCommand类定义了一条SQL语句。然后,我们创建了一个SqlCommand对象,并将SQL语句和数据库连接作为参数传递给它。接着,我们调用ExecuteNonQuery方法来执行SQL语句并返回受影响的行数。

3.删除数据

要从数据库中删除数据,可以使用相同的方式,指定要删除的数据行,并使用DELETE命令。下面是从学生表中删除指定姓名的学生信息的示例:

using System.Data.SqlClient;
 
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase; User ID=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
 
try
{
    //打开数据库连接
    connection.Open();
 
    //定义SQL语句
    string sql = "DELETE FROM Students WHERE Name = 'John';";
 
    //创建SqlCommand对象
    SqlCommand command = new SqlCommand(sql, connection);
 
    //执行SQL语句
    int rowsAffected = command.ExecuteNonQuery();
    Console.WriteLine("Rows Affected: " + rowsAffected);
}
catch (Exception ex)
{
    //处理异常
    Console.WriteLine(ex.Message);
}
finally
{
    //关闭数据库连接
    connection.Close();
}

在上代码中,我们使用相同的方法连接到数据库,并使用DELETE命令从学生表中删除名为“John”的学生信息。

4.更新数据

要更新数据库中的数据,可以使用UPDATE命令。下面是一个示例,在学生表中将指定学生的年龄更新为新的值:

using System.Data.SqlClient;
 
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase; User ID=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
 
try
{
    //打开数据库连接
    connection.Open();
 
    //定义SQL语句
    string sql = "UPDATE Students SET Age = 21 WHERE Name = 'John';";
 
    //创建SqlCommand对象
    SqlCommand command = new SqlCommand(sql, connection);
 
    //执行SQL语句
    int rowsAffected = command.ExecuteNonQuery();
    Console.WriteLine("Rows Affected: " + rowsAffected);
}
catch (Exception ex)
{
    //处理异常
    Console.WriteLine(ex.Message);
}
finally
{
    //关闭数据库连接
    connection.Close();
}

在上述代码中,我们使用UPDATE命令将名为“John”的学生的年龄更新为21。

5.查询数据

要从数据库中查询数据,可以使用SELECT命令以及其他命令。下面是一个示例,在学生表中查询所有学生信息的示例:

using System.Data.SqlClient;
 
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase; User ID=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
 
try
{
    //打开数据库连接
    connection.Open();
 
    //定义SQL语句
    string sql = "SELECT * FROM Students;";
 
    //创建SqlCommand对象
    SqlCommand command = new SqlCommand(sql, connection);
 
    //执行SQL语句
    SqlDataReader dataReader = command.ExecuteReader();
 
    //遍历查询结果
    while (dataReader.Read())
    {
        Console.WriteLine("{0}\t{1}\t{2}", dataReader["Name"], dataReader["Age"], dataReader["Gender"]);
    }
 
    //关闭DataReader
    dataReader.Close();
}
catch (Exception ex)
{
    //处理异常
    Console.WriteLine(ex.Message);
}
finally
{
    //关闭数据库连接
    connection.Close();
}

在上述代码中,我们使用SELECT命令来查询学生表中的所有学生信息。我们创建了一个SqlDataReader实例,并使用其Read方法遍历查询结果,最后调用Close方法关闭它。

总结

在C#中连接数据库,我们需要使用System.Data.SqlClient命名空间中的SqlConnection、SqlCommand和SqlDataReader等类。连接数据库时,需要指定数据库连接字符串,并确保在使用SqlCommand时,提供正确的SQL语句和连接对象。使用这些类,我们可以轻松地执行常见的增删改查操作,以及许多其他操作。掌握数据库连接的方法可以使我们能够更轻松地开发出优秀的C#应用程序。


相关实践学习
使用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
相关文章
|
9天前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
9天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
10天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
20天前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
16 2
|
24天前
|
存储 数据挖掘 数据库
数据库数据恢复—SQLserver数据库ndf文件大小变为0KB的数据恢复案例
一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。 存储损坏,数据库不可用。管理员试图恢复数据库,发现有数个ndf文件大小变为0KB。 虽然NDF文件大小变为0KB,但是NDF文件在磁盘上还可能存在。可以尝试通过扫描&拼接数据库碎片来恢复NDF文件,然后修复数据库。
|
25天前
|
SQL JSON Java
没有数据库也能用 SQL
SPL(Structured Process Language)是一款开源软件,允许用户直接对CSV、XLS等文件进行SQL查询,无需将数据导入数据库。它提供了标准的JDBC驱动,支持复杂的SQL操作,如JOIN、子查询和WITH语句,还能处理非标准格式的文件和JSON数据。SPL不仅简化了数据查询,还提供了强大的计算能力和友好的IDE,适用于多种数据源的混合计算。
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
113 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
61 6