c#数据库教程简单的
- 行业动态
- 2025-02-03
- 3902
C# 数据库教程简单的

一、数据库基础概念
1、什么是数据库:数据库是一个有组织地存储数据的集合,它可以包含各种类型的数据,如文本、数字、图像等,数据库管理系统(DBMS)用于管理数据库的创建、维护和操作,常见的数据库类型包括关系型数据库(如MySQL、SQL Server、Oracle等)和非关系型数据库(如MongoDB、Redis等)。
2、关系型数据库的特点:关系型数据库以表格的形式存储数据,每个表格由行和列组成,行表示记录,列表示字段,不同的表格之间可以通过键进行关联,形成复杂的数据结构,关系型数据库具有数据一致性、完整性约束、事务支持等优点,适用于处理复杂的数据关系和多用户并发访问的场景。
3、非关系型数据库的特点:非关系型数据库不遵循传统的表格形式存储数据,而是采用灵活的数据模型,如键值对、文档、图形等,非关系型数据库通常具有高性能、可扩展性强、适合处理大量半结构化或非结构化数据等特点,常用于大数据、实时数据处理、内容管理系统等领域。
二、C#连接数据库的方式

1、使用ADO.NET连接数据库:ADO.NET是微软提供的一种用于访问数据库的技术框架,它提供了一组类和接口,用于与各种数据库进行交互,以下是使用ADO.NET连接到SQL Server数据库的基本步骤:
引入命名空间:在C#代码中,需要引入System.Data.SqlClient
命名空间,以便使用相关的数据库操作类。
建立连接:使用SqlConnection
类创建一个数据库连接对象,并指定连接字符串,连接字符串包含了数据库服务器地址、数据库名称、用户名和密码等信息。
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"; SqlConnection connection = new SqlConnection(connectionString);
打开连接:调用Open
方法打开数据库连接。

执行命令:使用SqlCommand
类创建命令对象,并指定要执行的SQL语句,然后通过ExecuteNonQuery
方法执行命令,或者使用ExecuteReader
方法获取查询结果。
SqlCommand command = new SqlCommand("SELECT * FROM myTable", connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader["ColumnName"].ToString()); }
关闭连接:操作完成后,调用Close
方法关闭数据库连接。
2、使用Entity Framework连接数据库:Entity Framework是微软推出的一款对象关系映射(ORM)框架,它允许开发人员使用面向对象的方式来操作数据库,以下是使用Entity Framework连接到数据库的基本步骤:
安装Entity Framework:通过NuGet包管理器安装Entity Framework相关程序集。
创建模型类:根据数据库表的结构创建对应的模型类,模型类的属性与数据库表中的列相对应。
配置数据库连接:在应用程序的配置文件中设置数据库连接字符串。
创建DbContext派生类:创建一个继承自DbContext
的类,并在其中定义一个DbSet
属性,用于表示数据库中的表。
public class MyDbContext : DbContext { public DbSet<MyModel> MyTable { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("Your_Connection_String_Here"); } }
执行数据库操作:使用MyDbContext
类的实例来执行数据库操作,如添加、删除、修改和查询等。
using (var context = new MyDbContext()) { var entity = new MyModel { Column1 = "Value1", Column2 = "Value2" }; context.MyTable.Add(entity); context.SaveChanges(); }
三、常用的数据库操作
1、查询数据:可以使用SELECT
语句从数据库表中查询数据,在C#中,可以使用SqlCommand
或DbContext
来执行查询操作,并将结果读取到程序中进行处理。
string query = "SELECT * FROM myTable WHERE Column1 = @value"; SqlCommand command = new SqlCommand(query, connection); command.Parameters.AddWithValue("@value", "someValue"); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { // 处理查询结果 }
2、插入数据:使用INSERT INTO
语句向数据库表中插入新数据,在C#中,可以构建相应的SQL语句或使用DbContext
的Add
和SaveChanges
方法来插入数据。
string insertQuery = "INSERT INTO myTable (Column1, Column2) VALUES (@value1, @value2)"; SqlCommand command = new SqlCommand(insertQuery, connection); command.Parameters.AddWithValue("@value1", "Value1"); command.Parameters.AddWithValue("@value2", "Value2"); command.ExecuteNonQuery();
3、更新数据:使用UPDATE
语句更新数据库表中已有的数据,在C#中,可以构建相应的SQL语句或使用DbContext
的Find
和SaveChanges
方法来更新数据。
string updateQuery = "UPDATE myTable SET Column1 = @value1 WHERE Column2 = @value2"; SqlCommand command = new SqlCommand(updateQuery, connection); command.Parameters.AddWithValue("@value1", "NewValue1"); command.Parameters.AddWithValue("@value2", "OldValue2"); command.ExecuteNonQuery();
4、删除数据:使用DELETE
语句从数据库表中删除数据,在C#中,可以构建相应的SQL语句或使用DbContext
的Remove
和SaveChanges
方法来删除数据。
string deleteQuery = "DELETE FROM myTable WHERE Column1 = @value"; SqlCommand command = new SqlCommand(deleteQuery, connection); command.Parameters.AddWithValue("@value", "ValueToDelete"); command.ExecuteNonQuery();
四、示例代码
以下是一个简单的示例,演示了如何使用C#和ADO.NET连接到SQL Server数据库,并进行查询、插入、更新和删除操作:
|操作类型|代码示例|说明|
|—-|—-|—-|
|查询数据|“`csharp
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
string query = "SELECT * FROM myTable";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
Console.WriteLine(reader["ColumnName"].ToString());
reader.Close();
connection.Close();
“`|该代码连接到SQL Server数据库,执行查询操作,并输出查询结果。|
|插入数据|“`csharp
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
string insertQuery = "INSERT INTO myTable (Column1, Column2) VALUES (@value1, @value2)";
SqlCommand command = new SqlCommand(insertQuery, connection);
command.Parameters.AddWithValue("@value1", "Value1");
command.Parameters.AddWithValue("@value2", "Value2");
command.ExecuteNonQuery();
connection.Close();
“`|该代码连接到SQL Server数据库,执行插入操作,向表中插入一条新记录。|
|更新数据|“`csharp
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
string updateQuery = "UPDATE myTable SET Column1 = @value1 WHERE Column2 = @value2";
SqlCommand command = new SqlCommand(updateQuery, connection);
command.Parameters.AddWithValue("@value1", "NewValue1");
command.Parameters.AddWithValue("@value2", "OldValue2");
command.ExecuteNonQuery();
connection.Close();
“`|该代码连接到SQL Server数据库,执行更新操作,将指定记录的某一列值更新为新的值。|
|删除数据|“`csharp
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
string deleteQuery = "DELETE FROM myTable WHERE Column1 = @value";
SqlCommand command = new SqlCommand(deleteQuery, connection);
command.Parameters.AddWithValue("@value", "ValueToDelete");
command.ExecuteNonQuery();
connection.Close();
“`|该代码连接到SQL Server数据库,执行删除操作,删除表中满足条件的记录。|
五、注意事项
1、确保正确处理数据库连接的打开和关闭,避免出现连接泄漏等问题,在使用完数据库连接后,应及时关闭连接。
2、对于敏感信息,如数据库连接字符串中的用户名和密码等,应妥善保管,避免泄露,可以使用加密技术对连接字符串进行加密存储。
3、在进行数据库操作时,应注意异常处理,捕获可能出现的错误,并进行相应的处理,以提高程序的稳定性和可靠性。
try { // 数据库操作代码 } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); }