ADO.NET操作数据库的基本方法
1. 简介
ADO.NET是Microsoft .NET Framework中的一个重要组件,用于操作各种数据库。它提供了一套用于连接、访问和操作数据的类和方法,是开发.NET应用程序中最常用的数据库访问技术之一。
在本文中,我们将介绍ADO.NET的基本方法,包括连接数据库、执行SQL语句、读取和写入数据等操作。
2. 连接数据库
在使用ADO.NET操作数据库之前,首先需要建立与数据库的连接。ADO.NET提供了SqlConnection
类用于建立与数据库的连接。
using System.Data.SqlClient;
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
上述代码中,connectionString
是连接字符串,用于指定数据库的服务器地址、数据库名称、用户名和密码等信息。SqlConnection
类的构造函数接受一个连接字符串作为参数,并通过调用Open
方法打开与数据库的连接。
3. 执行SQL语句
连接数据库后,我们可以使用ADO.NET执行SQL语句,包括查询、插入、更新和删除等操作。ADO.NET提供了SqlCommand
类用于执行SQL语句。
3.1 查询数据
string sql = "SELECT * FROM your_table";
SqlCommand command = new SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
int id = (int)reader["id"];
string name = (string)reader["name"];
// 处理查询结果
}
reader.Close();
上述代码中,sql
是要执行的SQL语句,SqlCommand
类的构造函数接受一个SQL语句和一个连接对象作为参数,并通过调用ExecuteReader
方法执行查询操作。SqlDataReader
类用于读取查询结果,通过调用Read
方法切换到下一条记录,并通过索引或列名获取相应字段的值。
3.2 插入数据
string sql = "INSERT INTO your_table (name, age) VALUES (@name, @age)";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@name", "John");
command.Parameters.AddWithValue("@age", 25);
int rowsAffected = command.ExecuteNonQuery();
上述代码中,sql
是要执行的插入语句,SqlCommand
类的构造函数接受一个SQL语句和一个连接对象作为参数,并通过调用ExecuteNonQuery
方法执行插入操作。Parameters
属性用于添加参数,其中@name
和@age
是参数名,后面的AddWithValue
方法用于为参数指定值。
3.3 更新数据
string sql = "UPDATE your_table SET name = @name WHERE id = @id";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@name", "John");
command.Parameters.AddWithValue("@id", 1);
int rowsAffected = command.ExecuteNonQuery();
上述代码中,sql
是要执行的更新语句,SqlCommand
类的构造函数接受一个SQL语句和一个连接对象作为参数,并通过调用ExecuteNonQuery
方法执行更新操作。Parameters
属性用于添加参数,其中@name
和@id
是参数名,后面的AddWithValue
方法用于为参数指定值。
3.4 删除数据
string sql = "DELETE FROM your_table WHERE id = @id";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@id", 1);
int rowsAffected = command.ExecuteNonQuery();
上述代码中,sql
是要执行的删除语句,SqlCommand
类的构造函数接受一个SQL语句和一个连接对象作为参数,并通过调用ExecuteNonQuery
方法执行删除操作。Parameters
属性用于添加参数,其中@id
是参数名,后面的AddWithValue
方法用于为参数指定值。
4. 读取和写入数据
除了使用SqlDataReader
类读取查询结果外,ADO.NET还提供了DataTable
和DataSet
类用于读取和写入数据。
4.1 读取数据
string sql = "SELECT * FROM your_table";
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
foreach (DataRow row in dataTable.Rows)
{
int id = (int)row["id"];
string name = (string)row["name"];