ADO.NET数据库开发与C#函数开发
(图片来源网络,侵删)
ADO.NET是一个用于访问和操作数据库的一组类库,它提供了一种统一的方式来连接、查询和更新数据源,在C#中,我们可以使用ADO.NET来连接各种类型的数据库,如SQL Server、Oracle、MySQL等,本文将介绍如何使用ADO.NET进行数据库开发,并结合C#函数开发来实现一些常见的功能。
1. ADO.NET的基本概念
ADO.NET是一组用于访问和操作数据库的类库,它包括以下几个主要组件:
Connection:表示与数据库的连接。
Command:表示要执行的SQL命令或存储过程。
DataReader:表示从数据源读取数据的只读、向前的数据流。
DataAdapter:表示用于填充DataSet和DataTable的组件。
DataSet:表示内存中的数据集,可以包含多个DataTable对象。
DataTable:表示一个数据表,包含行和列。
2. 使用ADO.NET连接数据库
在C#中,我们可以使用SqlConnection类来连接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("数据库连接成功!");
}
}
}
3. 使用ADO.NET执行SQL命令
在C#中,我们可以使用SqlCommand类来执行SQL命令,以下是一个简单的示例:
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();
string sql = "SELECT * FROM myTable";
using (SqlCommand command = new SqlCommand(sql, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"ID: {reader["id"]}, Name: {reader["name"]}");
}
}
}
}
}
}
4. 使用ADO.NET执行存储过程
在C#中,我们可以使用SqlCommand类来执行存储过程,以下是一个简单的示例:
using System;
using System.Data.SqlClient;
using System.Data;
class Program
{
static void Main()
{
string connectionString = "Server=localhost;Database=myDatabase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string storedProcedureName = "uspGetEmployees";
using (SqlCommand command = new SqlCommand(storedProcedureName, connection))
{
command.CommandType = CommandType.StoredProcedure;
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"ID: {reader["id"]}, Name: {reader["name"]}");
}
}
}
}
}
}
5. C#函数开发与ADO.NET的结合
在C#中,我们可以将ADO.NET的操作封装到函数中,以便于复用和维护,以下是一个简单的示例:
using System;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper; // 引入Dapper库,简化ADO.NET操作的封装和调用,需要安装Dapper库(InstallPackage Dapper),以下代码省略了异常处理部分,请根据实际情况添加异常处理。
// 定义一个Employee类,用于映射数据库表结构。
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
// 定义一个获取员工信息的函数。
public List<Employee> GetEmployees()
{
string connectionString = "Server=localhost;Database=myDatabase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string sql = "SELECT FROM myTable";
List<Employee> employees = connection.Query<Employee>(sql).ToList();
return employees;
}
// return null; // 如果不需要返回结果,可以注释掉这一行,并在函数声明中添加return type为void。
// 注意如果不需要返回结果,请务必在函数声明中添加return type为void。
// 如果需要返回结果,请确保函数能够正常返回结果,否则可能导致程序崩溃。
}
``
、Dapper库的使用方式如下:
、`csharp
、using System;
、using System.Data.SqlClient;
、using Dapper; // 引入Dapper库,简化ADO.NET操作的封装和调用,需要安装Dapper库(InstallPackage Dapper),以下代码省略了异常处理部分,请根据实际情况添加异常处理。
、
、// 定义一个Employee类,用于映射数据库表结构。
、public class Employee
、{
、 public int Id { get; set; }
、 public string Name { get; set; }
、}
、
、// 定义一个获取员工信息的函数。
、public List<Employee> GetEmployees()
、{
、 string connectionString = "Server=localhost;Database=myDatabase;User Id=myUsername;Password=myPassword;";
、 using (SqlConnection connection = new SqlConnection(connectionString))
、 {
、 connection.Open();
、 string sql = "SELECT * FROM myTable";
、 List<Employee> employees = connection.Query<Employee>(sql).ToList();
、 return employees;
、 }
、}
`
、在上述代码中,我们首先引入了System和System.Data命名空间,然后引入了Dapper库,接下来,我们定义了一个Employee类,用于映射数据库表结构,我们定义了一个名为GetEmployees的函数,该函数使用Dapper库简化了ADO.NET操作的封装和调用,在这个函数中,我们首先创建了一个SqlConnection对象,然后打开了数据库连接,接着,我们定义了一个SQL查询语句,并使用connection.Query<方法将查询结果映射到Employee对象列表中,我们返回了这个列表,需要注意的是,如果不需要返回结果,可以在函数声明中添加return type为void;如果需要返回结果,请确保函数能够正常返回结果,否则可能导致程序崩溃。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/679739.html
© 版权声明
文章版权归作者所有,未经允许请勿转载。




