在.NET中,C#是一种强类型语言,具有一些强大的工具来驱动OleDb连接器来连接各种数据源。在.NET标准或.NET Core环境下,C# OleDb数据提供程序可以很容易的连接和操作Relational Database Management System(RDBMS)。在.NET中,我们可以使用以下五个OleDb连接器来连接到不同的数据源:
OleDbConnection
OleDbCommand
OleDbDataAdapter
OleDbDataReader
OleDbTransaction
在本文中,我们将重点讨论如何使用C# OleDbConnection连接Oracle数据库并执行创建、读取、更新和删除(简称C.R.U.D)等操作。
安装Oracle.DataAccess NuGet包
在使用OleDb连接到Oracle数据库之前,需要确保安装了Oracle.DataAccess NuGet包。首先,在Visual Studio中打开项目,右键单击项目并选择“管理NuGet软件包”。在打开的NuGet包管理器对话框中搜索“Oracle.DataAccess”并选择它。选择要安装的版本,然后点击安装。NuGet将自动下载和安装包及其依赖项。
创建OleDb连接
要创建OleDb连接,请使用System.Data.OleDb.OleDbConnection类创建一个新的连接对象,并指定数据源的连接字符串。在这种情况下,我们使用连接字符串来连接到Oracle数据库。
using System.Data.OleDb;
.. ..
private static OleDbConnection GetConnection()
{
string connectionString =
@"Provider=OraOLEDB.Oracle;Data Source=ORCL;User Id=hr;Password=hr;";
return new OleDbConnection(connectionString);
}
连接器执行SQL查询并将结果返回到一个dataTable或dataAdapter。下面是一个示例,演示如何使用OleDbDataAdapter查询Oracle数据库SELECT语句。
public static DataTable SelectAll()
{
DataTable dt = new DataTable();
string query = "SELECT * FROM employees";
using (OleDbConnection connection = GetConnection())
{
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
adapter.Fill(dt);
}
return dt;
}
插入语句
通过执行INSERT INTO语句向Oracle数据库中插入数据。可以创建一个新的OleDbCommand对象并使用参数向插入语句传递值。以下是一个示例。
public static int Insert(Employee employee)
{
string query = @"INSERT INTO employees (employee_id,first_name,last_name,email)
VALUES (:employee_id,:first_name,:last_name,:email)";
int result = 0;
using (OleDbConnection connection = GetConnection())
{
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = query;
command.Parameters.AddWithValue(":employee_id", employee.Id);
command.Parameters.AddWithValue(":first_name", employee.FirstName);
command.Parameters.AddWithValue(":last_name", employee.LastName);
command.Parameters.AddWithValue(":email", employee.Email);
connection.Open();
result = command.ExecuteNonQuery();
}
return result;
}
更新语句
执行UPDATE语句更新Oracle数据库中的数据。可以创建一个新的OleDbCommand对象并使用参数向插入语句传递值。下面是一个示例。
public static int Update(Employee employee)
{
string query = @"UPDATE employees
SET first_name=:first_name,last_name=:last_name,email=:email
WHERE employee_id=:employee_id";
int result = 0;
using (OleDbConnection connection = GetConnection())
{
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = query;
command.Parameters.AddWithValue(":first_name", employee.FirstName);
command.Parameters.AddWithValue(":last_name", employee.LastName);
command.Parameters.AddWithValue(":email", employee.Email);
command.Parameters.AddWithValue(":employee_id", employee.Id);
connection.Open();
result = command.ExecuteNonQuery();
}
return result;
}
删除语句
执行DELETE语句删除Oracle数据库中的数据。可以创建一个新的OleDbCommand对象并使用参数向插入语句传递值。下面是一个示例。
public static int Delete(int employeeId)
{
string query = @"DELETE FROM employees WHERE employee_id=:employee_id";
int result = 0;
using (OleDbConnection connection = GetConnection())
{
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = query;
command.Parameters.AddWithValue(":employee_id", employeeId);
connection.Open();
result = command.ExecuteNonQuery();
}
return result;
}
结论
本文讨论了如何使用.NET中C#的OleDb连接器连接Oracle数据库,并执行针对数据的常见C.R.U.D操作。C#对于连接到不同类型的数据源提供了方便的工具,并且OleDb连接器给用户提供了操作数据的灵活性。希望这篇文章可以对正在使用C#连接Oracle数据库的开发人员有所帮助。