达永编程网

程序员技术分享与交流平台

第九章:数据库编程_数据库编程教程

9.1 ADO.NET 基础

ADO.NET 是 .NET 框架中用于访问数据库的一组类库。它提供了连接、命令、数据读取器和数据适配器等组件,用于与数据库进行交互。

9.2 连接与操作数据库

使用 ADO.NET 连接数据库通常涉及以下步骤:

  1. 创建数据库连接。
  2. 创建命令对象并执行 SQL 语句。
  3. 使用数据读取器或数据适配器读取数据。

示例代码:

csharp

复制

using System;
using System.Data.SqlClient;

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "Server=localhost;Database=TestDB;User Id=sa;Password=your_password;";
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            string query = "SELECT * FROM Users";
            SqlCommand command = new SqlCommand(query, connection);
            SqlDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                Console.WriteLine("ID: " + reader["Id"] + ", Name: " + reader["Name"]);
            }

            reader.Close();
        }
    }
}

9.3 Entity Framework 简介

Entity Framework (EF) 是 .NET 中的一个对象关系映射 (ORM) 框架,它允许开发者以面向对象的方式操作数据库。

示例代码:

csharp

复制

using System;
using System.Linq;
using Microsoft.EntityFrameworkCore;

class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class MyDbContext : DbContext
{
    public DbSet Users { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Server=localhost;Database=TestDB;User Id=sa;Password=your_password;");
    }
}

class Program
{
    static void Main(string[] args)
    {
        using (var context = new MyDbContext())
        {
            var users = context.Users.ToList();
            foreach (var user in users)
            {
                Console.WriteLine("ID: " + user.Id + ", Name: " + user.Name);
            }
        }
    }
}

9.4 LINQ to SQL

LINQ to SQL 是另一种 ORM 技术,允许开发者使用 LINQ 查询数据库。

示例代码:

csharp

复制

using System;
using System.Linq;

class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class MyDataContext : System.Data.Linq.DataContext
{
    public Table Users;

    public MyDataContext(string connectionString) : base(connectionString) { }
}

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "Server=localhost;Database=TestDB;User Id=sa;Password=your_password;";
        using (var context = new MyDataContext(connectionString))
        {
            var users = from u in context.Users
                        where u.Name.StartsWith("J")
                        select u;

            foreach (var user in users)
            {
                Console.WriteLine("ID: " + user.Id + ", Name: " + user.Name);
            }
        }
    }
}

课后练习题

  1. 简答题
  2. 什么是 ADO.NET?它的主要组件有哪些?
  3. Entity Framework 的主要优势是什么?
  4. LINQ to SQL 与 Entity Framework 的区别是什么?
  5. 编程题
  6. 编写一个程序,使用 ADO.NET 连接数据库并插入一条新记录。
  7. 使用 Entity Framework 创建一个简单的 CRUD 应用程序。
  8. 编写一个程序,使用 LINQ to SQL 查询数据库并输出结果。
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言