📜  mssql 列表 - C# (1)

📅  最后修改于: 2023-12-03 15:32:59.909000             🧑  作者: Mango

MSSQL 列表 - C#

MSSQL是一种关系型数据库管理系统,而在C#中,我们可以通过MSSQL提供的API来访问和操作数据库。

简介

在C#中使用MSSQL主要有两种方式:

  1. ADO.NET:提供了一组用于在.NET应用程序中访问数据源的类库,包括SqlConnectionSqlCommandSqlDataReader等等。

  2. Entity Framework:一种ORM框架,可以将数据库表映射为.NET类,随后通过操作这些类来操作数据库。

使用ADO.NET访问MSSQL
连接数据库

使用SqlConnection类可以连接到MSSQL数据库。

using System.Data.SqlClient;
...

string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // 连接成功
}
查询数据

使用SqlCommand类可以执行数据库查询操作。

using (SqlCommand command = new SqlCommand("SELECT * FROM Customers", connection))
{
    using (SqlDataReader reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            // 处理查询结果
        }
    }
}
更新/删除数据

使用SqlCommand类可以执行数据库更新和删除操作。

using (SqlCommand command = new SqlCommand("UPDATE Customers SET ContactName = 'NewContact' WHERE CustomerID = 'ALFKI'", connection))
{
    int rowsAffected = command.ExecuteNonQuery();
    // rowsAffected 表示被修改的行数
}
插入数据

使用SqlCommand类可以执行数据库插入操作。

using (SqlCommand command = new SqlCommand("INSERT INTO Customers (CustomerID, ContactName) VALUES ('ALFKI', 'Contact')", connection))
{
    int rowsAffected = command.ExecuteNonQuery();
    // rowsAffected 表示被插入的行数
}
使用Entity Framework访问MSSQL
连接数据库

使用Entity Framework需要添加对应的nuget包,并在代码中添加相关引用。

using System.Data.Entity;
...

public class MyDbContext : DbContext
{
    public MyDbContext() : base("MyConnectionString")
    {
    }

    public DbSet<Customer> Customers { get; set; }
}
查询数据

使用Entity Framework需要通过操作映射的.NET类来进行操作。

using (MyDbContext context = new MyDbContext())
{
    var customers = context.Customers.ToList();
    // customers 表示所有的Customer实体
}
更新数据

使用Entity Framework可以直接操作映射的.NET类来更新数据。

using (MyDbContext context = new MyDbContext())
{
    var customer = context.Customers.FirstOrDefault(c => c.CustomerID == "ALFKI");
    customer.ContactName = "NewContact";
    context.SaveChanges();
    // 更新成功
}
删除数据

使用Entity Framework可以直接操作映射的.NET类来删除数据。

using (MyDbContext context = new MyDbContext())
{
    var customer = context.Customers.FirstOrDefault(c => c.CustomerID == "ALFKI");
    context.Customers.Remove(customer);
    context.SaveChanges();
    // 删除成功
}
插入数据

使用Entity Framework可以直接操作映射的.NET类来插入数据。

using (MyDbContext context = new MyDbContext())
{
    var customer = new Customer() { CustomerID = "ALFKI", ContactName = "Contact" };
    context.Customers.Add(customer);
    context.SaveChanges();
    // 插入成功
}
结语

使用MSSQL时,我们既可以使用ADO.NET也可以使用Entity Framework来操作数据库。具体应该选择哪种方式取决于项目的需求,而技术选型时需要综合考虑各个因素。