引言:为什么 C# 开发者需要数据库?
任何现代应用程序——从简单的博客到企业级 ERP 系统——都需要存储数据。没有数据库(DB),就无法确保持久存储、快速搜索和数据完整性。对于 C# 开发者来说,能够操作数据库不仅仅是一个加分项,更是一项必备技能。本文将介绍两种流行的数据库管理系统:关系型 PostgreSQL 和文档型 MongoDB。您将学习如何从 .NET 应用程序连接它们并执行基本操作(CRUD)。本文面向初学者,因此我们将从安装逐步讲解到编写第一个可运行的代码。
1. 环境设置与驱动安装
在编写代码之前,您需要安装数据库本身,并向 C# 项目添加相应的 NuGet 包。
1.1. 安装 PostgreSQL 和 MongoDB
- PostgreSQL:从官方网站 postgresql.org 下载最新版本。安装时请记住端口号(默认 5432)和超级用户
postgres的密码。 - MongoDB:从 mongodb.com 下载社区版。将其安装为服务。为了方便,您还可以安装 MongoDB Compass——一个用于查看数据的图形界面。
安装完成后,请确保服务正在运行。要进行检查,请使用命令行(PostgreSQL:psql -U postgres,MongoDB:mongosh)。
1.2. 创建项目并安装包
创建一个 .NET 8 控制台应用程序:
dotnet new console -n DatabaseDemocd DatabaseDemo现在安装必要的驱动程序:
// For PostgreSQLdotnet add package Npgsql
// For MongoDBdotnet add package MongoDB.DriverNpgsql 是一个功能齐全的 PostgreSQL .NET 提供程序。MongoDB.Driver 是 MongoDB, Inc. 的官方驱动程序。
2. 在 C# 中操作 PostgreSQL
PostgreSQL 是一种对象关系型数据库管理系统。数据存储在外键关联的表中。为了方便起见,我们将使用 Npgsql 执行原生 SQL 查询,以便您了解连接和执行命令的机制。
2.1. 连接服务器并创建表
首先,通过 psql 或代码创建一个数据库(例如 shopdb)。在代码中,我们将连接到现有数据库。我们来编写一个创建 Products 表的方法:
using Npgsql;
string connectionString = "Host=localhost;Port=5432;Database=shopdb;Username=postgres;Password=your_password";
using var connection = new NpgsqlConnection(connectionString);connection.Open();
string createTable = @"CREATE TABLE IF NOT EXISTS Products ( Id SERIAL PRIMARY KEY, Name VARCHAR(100) NOT NULL, Price DECIMAL(10,2) NOT NULL, Quantity INT DEFAULT 0);";
using var command = new NpgsqlCommand(createTable, connection);command.ExecuteNonQuery();Console.WriteLine("Table created.");注意:我们使用 using 来自动关闭连接。SERIAL 类型会自动创建自增字段。
2.2. CRUD 操作(插入、查询、更新、删除)
让我们添加一些产品并在屏幕上显示:
// Inserting datastring insert = "INSERT INTO Products (Name, Price, Quantity) VALUES (@n, @p, @q)";using var cmdInsert = new NpgsqlCommand(insert, connection);cmdInsert.Parameters.AddWithValue("@n", "Laptop");cmdInsert.Parameters.AddWithValue("@p", 79999.99m);cmdInsert.Parameters.AddWithValue("@q", 10);cmdInsert.ExecuteNonQu