📅  最后修改于: 2023-12-03 15:32:59.909000             🧑  作者: Mango
MSSQL是一种关系型数据库管理系统,而在C#中,我们可以通过MSSQL提供的API来访问和操作数据库。
在C#中使用MSSQL主要有两种方式:
ADO.NET:提供了一组用于在.NET应用程序中访问数据源的类库,包括SqlConnection
、SqlCommand
、SqlDataReader
等等。
Entity Framework:一种ORM框架,可以将数据库表映射为.NET类,随后通过操作这些类来操作数据库。
使用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需要添加对应的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来操作数据库。具体应该选择哪种方式取决于项目的需求,而技术选型时需要综合考虑各个因素。