探索ADO.NET访问数据库功能实践("ADO.NET数据库访问功能实战探索")

原创
ithorizon 6个月前 (10-19) 阅读数 25 #后端开发

ADO.NET数据库访问功能实战探索

一、引言

随着信息技术的逐步提升,数据库在软件开发中扮演着越来越重要的角色。作为一种常用的数据库访问技术,ADO.NET为开发者提供了强盛的数据库访问功能。本文将深入探讨ADO.NET的数据库访问功能,并通过实际案例进行实战演练,帮助读者更好地懂得和应用这一技术。

二、ADO.NET简介

ADO.NET(ActiveX Data Objects.NET)是.NET Framework中用于访问数据库的一种技术。它提供了一组用于连接、操作和断开数据库连接的类库。ADO.NET重点由以下几个核心组件组成:

  • Connection:用于构建与数据库的连接。
  • Command:用于执行数据库命令。
  • DataReader:用于读取数据库中的数据。
  • DataAdapter:用于填充数据集(DataSet)和数据表(DataTable)。

三、连接数据库

在ADO.NET中,连接数据库是第一步。以下是一个连接SQL Server数据库的示例:

using System;

using System.Data.SqlClient;

class Program

{

static void Main()

{

string connectionString = "server=.;database=TestDB;uid=sa;pwd=123456";

using (SqlConnection conn = new SqlConnection(connectionString))

{

try

{

conn.Open();

Console.WriteLine("数据库连接胜利!");

}

catch (Exception ex)

{

Console.WriteLine("数据库连接落败:" + ex.Message);

}

}

}

}

四、执行SQL命令

构建连接后,我们可以通过SqlCommand对象执行SQL命令。以下是一个执行插入操作的示例:

using System;

using System.Data.SqlClient;

class Program

{

static void Main()

{

string connectionString = "server=.;database=TestDB;uid=sa;pwd=123456";

using (SqlConnection conn = new SqlConnection(connectionString))

{

conn.Open();

string sql = "INSERT INTO Users (Name, Age) VALUES ('张三', 25)";

using (SqlCommand cmd = new SqlCommand(sql, conn))

{

int result = cmd.ExecuteNonQuery();

if (result > 0)

{

Console.WriteLine("插入胜利!");

}

else

{

Console.WriteLine("插入落败!");

}

}

}

}

}

五、使用DataReader读取数据

当我们需要从数据库中读取数据时,可以使用SqlDataReader对象。以下是一个查询操作的示例:

using System;

using System.Data.SqlClient;

class Program

{

static void Main()

{

string connectionString = "server=.;database=TestDB;uid=sa;pwd=123456";

using (SqlConnection conn = new SqlConnection(connectionString))

{

conn.Open();

string sql = "SELECT * FROM Users";

using (SqlCommand cmd = new SqlCommand(sql, conn))

{

using (SqlDataReader reader = cmd.ExecuteReader())

{

while (reader.Read())

{

Console.WriteLine("Name: {0}, Age: {1}", reader["Name"], reader["Age"]);

}

}

}

}

}

}

六、使用DataAdapter填充数据集

当我们需要将数据库中的数据填充到数据集(DataSet)或数据表(DataTable)时,可以使用SqlDataAdapter对象。以下是一个填充数据集的示例:

using System;

using System.Data;

using System.Data.SqlClient;

class Program

{

static void Main()

{

string connectionString = "server=.;database=TestDB;uid=sa;pwd=123456";

using (SqlConnection conn = new SqlConnection(connectionString))

{

conn.Open();

string sql = "SELECT * FROM Users";

using (SqlCommand cmd = new SqlCommand(sql, conn))

{

using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))

{

DataSet dataSet = new DataSet();

adapter.Fill(dataSet, "Users");

DataTable dataTable = dataSet.Tables["Users"];

foreach (DataRow row in dataTable.Rows)

{

Console.WriteLine("Name: {0}, Age: {1}", row["Name"], row["Age"]);

}

}

}

}

}

}

七、事务处理

在数据库操作中,事务处理是非常重要的一个环节。ADO.NET提供了事务处理的功能。以下是一个事务处理的示例:

using System;

using System.Data;

using System.Data.SqlClient;

class Program

{

static void Main()

{

string connectionString = "server=.;database=TestDB;uid=sa;pwd=123456";

using (SqlConnection conn = new SqlConnection(connectionString))

{

conn.Open();

SqlTransaction transaction = conn.BeginTransaction();

try

{

string sql1 = "UPDATE Users SET Age = 26 WHERE Name = '张三'";

using (SqlCommand cmd1 = new SqlCommand(sql1, conn, transaction))

{

cmd1.ExecuteNonQuery();

}

string sql2 = "UPDATE Users SET Age = 27 WHERE Name = '李四'";

using (SqlCommand cmd2 = new SqlCommand(sql2, conn, transaction))

{

cmd2.ExecuteNonQuery();

}

transaction.Commit();

Console.WriteLine("事务提交胜利!");

}

catch (Exception ex)

{

transaction.Rollback();

Console.WriteLine("事务回滚:" + ex.Message);

}

}

}

}

八、总结

本文通过实际案例详细介绍了ADO.NET的数据库访问功能。从连接数据库、执行SQL命令、读取数据、填充数据集到事务处理,每个环节都进行了详细的说明和示例代码展示。通过这些实战案例,读者可以更好地懂得和掌握ADO.NET的数据库访问技术,为今后的开发工作打下坚实的基础。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门