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

简介: 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#应用程序。


相关文章
|
12月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1778 152
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1205 156
|
12月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
896 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
11月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
496 6
|
12月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
732 8
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
1539 8
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
511 5
|
SQL 数据库 数据安全/隐私保护
数据库数据恢复——sql server数据库被加密的数据恢复案例
SQL server数据库数据故障: SQL server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密,文件名字被篡改。
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
1608 0