C#是一种由微软开发的面向对象的编程语言,广泛应用于Windows应用程序、Web服务和游戏开发,而数据库则是用于存储和管理数据的系统,常见的有SQL Server、MySQL等,掌握C#与数据库的交互是现代软件开发中不可或缺的技能,本文将详细介绍如何使用C#连接和操作数据库,并提供一些实用的教程视频推荐。
1. C#简介
C#是一种强类型、面向对象的编程语言,具有简洁的语法和强大的功能,它支持多种编程范式,包括面向对象编程、事件驱动编程和函数式编程,C#主要用于开发Windows桌面应用程序、Web应用程序和移动应用。
2. 数据库简介
数据库是一种有组织的数据集合,通常以表格的形式存储,每个表格包含多行数据,每行数据又包含多个列,常见的数据库管理系统(DBMS)有SQL Server、MySQL、Oracle和SQLite等,SQL(Structured Query Language)是用于操作关系数据库的标准语言。
1. 使用ADO.NET连接数据库
ADO.NET是微软提供的一种用于访问数据库的框架,支持多种数据库,以下是一个简单的例子,演示如何使用ADO.NET连接到SQL Server数据库:
using System; using System.Data.SqlClient; class Program { static void Main() { string connectionString = "Server=localhost;Database=mydatabase;User Id=myusername;Password=mypassword;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); Console.WriteLine("Database connection opened successfully"); } } }
2. 使用Entity Framework连接数据库
Entity Framework是微软提供的一个ORM(对象关系映射)框架,简化了数据库操作,以下是一个使用Entity Framework Core的简单示例:
using Microsoft.EntityFrameworkCore; using System; class Program { public static void Main() { var optionsBuilder = new DbContextOptionsBuilder<MyDbContext>(); optionsBuilder.UseSqlServer("Server=localhost;Database=mydatabase;User Id=myusername;Password=mypassword;"); using (var context = new MyDbContext(optionsBuilder.Options)) { // 执行数据库操作 } } } public class MyDbContext : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); } }
1. 插入数据
使用ADO.NET插入数据的示例如下:
string insertQuery = "INSERT INTO Employees (Name, Age, Department) VALUES (@name, @age, @department)"; using (SqlCommand command = new SqlCommand(insertQuery, connection)) { command.Parameters.AddWithValue("@name", "John Doe"); command.Parameters.AddWithValue("@age", 30); command.Parameters.AddWithValue("@department", "HR"); command.ExecuteNonQuery(); }
使用Entity Framework插入数据的示例如下:
var employee = new Employee { Name = "John Doe", Age = 30, Department = "HR" }; context.Employees.Add(employee); context.SaveChanges();
2. 查询数据
使用ADO.NET查询数据的示例如下:
string selectQuery = "SELECT * FROM Employees WHERE Age > @age"; using (SqlCommand command = new SqlCommand(selectQuery, connection)) { command.Parameters.AddWithValue("@age", 25); using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"{reader["Name"]}, {reader["Age"]}, {reader["Department"]}"); } } }
使用Entity Framework查询数据的示例如下:
var employees = context.Employees.Where(e => e.Age > 25).ToList(); foreach (var employee in employees) { Console.WriteLine($"{employee.Name}, {employee.Age}, {employee.Department}"); }
3. 更新数据
使用ADO.NET更新数据的示例如下:
string updateQuery = "UPDATE Employees SET Department = @department WHERE Name = @name"; using (SqlCommand command = new SqlCommand(updateQuery, connection)) { command.Parameters.AddWithValue("@name", "John Doe"); command.Parameters.AddWithValue("@department", "IT"); command.ExecuteNonQuery(); }
使用Entity Framework更新数据的示例如下:
var employee = context.Employees.FirstOrDefault(e => e.Name == "John Doe"); if (employee != null) { employee.Department = "IT"; context.SaveChanges(); }
4. 删除数据
使用ADO.NET删除数据的示例如下:
string deleteQuery = "DELETE FROM Employees WHERE Name = @name"; using (SqlCommand command = new SqlCommand(deleteQuery, connection)) { command.Parameters.AddWithValue("@name", "John Doe"); command.ExecuteNonQuery(); }
使用Entity Framework删除数据的示例如下:
var employee = context.Employees.FirstOrDefault(e => e.Name == "John Doe"); if (employee != null) { context.Employees.Remove(employee); context.SaveChanges(); }
1. Pluralsight C# Fundamentals and Entity Framework Core
Pluralsight提供了详细的C#基础知识和Entity Framework Core的视频教程,适合初学者学习,课程内容包括C#的基本语法、面向对象编程以及如何使用Entity Framework Core进行数据库操作。
2. Udemy Complete C# Unity Game Development Mastery Guide
Udemy上的这门课程不仅涵盖了C#的基础知识,还教授如何使用C#进行Unity游戏开发,课程中包含了数据库操作的部分,非常适合希望将C#应用于游戏开发的学员。
3. YouTube Dan Voytasnik’s C# and SQL Server Tutorials
YouTube上有许多免费的C#和SQL Server教程视频,Dan Voytasnik的频道是一个非常不错的选择,他的视频内容通俗易懂,涵盖了从基础到高级的各种主题。
Q1: C#与数据库连接时出现“无法打开登录所请求的数据库”错误怎么办?
A1: 这种错误通常是由于连接字符串中的数据库名称不正确或者数据库服务器未启动导致的,请检查连接字符串中的数据库名称是否正确,并确保数据库服务器正在运行,还可以尝试使用SQL Server Management Studio(SSMS)手动连接到数据库,以确认数据库是否存在且可用。
Q2: 使用Entity Framework时如何迁移数据库?
A2: Entity Framework提供了迁移功能,可以通过命令行工具或代码来管理数据库结构的变化,在项目中添加对Entity Framework工具的支持,然后使用Add-Migration
命令创建一个新的迁移文件,最后使用Update-Database
命令将迁移应用到数据库。
dotnet ef migrations add InitialCreate dotnet ef database update
这些命令将生成一个初始迁移文件并将其应用到数据库,从而创建所需的表和其他数据库对象。