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
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复