c# - 我应该使用 OracleClient 还是 ADODB 来使用 c# 连接到 Oracle 数据库?
问题描述
我正在尝试使用 c# 连接到 Oracle 数据库。我看到我有两个选择:
using System.Data.OracleClient;
或
using ADODB;
我熟悉 MySQL,这就是为什么我更容易理解和使用 OracleClient 的原因。但是,我看到当我使用它时,c# 说它已被弃用。这让我想知道我的 OracleClient 代码是否能在 1-2 年内正常工作。
我应该怎么办?
下面是我使用 OracleClient 的代码:
public class DataHelper
{
public OracleConnection connection;
String connectionString;
public DataHelper()
{
connectionString = "this should be connection string";
connection = new OracleConnection(connectionString);
}
public List<Machine> GetAllMachines()
{
List<Machine> temp= new List<Machine>();
using (OracleConnection connection = new OracleConnection(connectionString))
{
string queryString = "SELECT * FROM MACHINES";
OracleCommand command = new OracleCommand(queryString);
try
{
command.Connection = connection;
connection.Open();
command.CommandType = CommandType.Text;
//command.ExecuteNonQuery();
OracleDataReader reader = command.ExecuteReader();
int machineNr, nrOfLinesPerCm;
double cycleTime, currentTime, heightOfLamallae;
string machineType;
while (reader.Read())
{
machineNr = Convert.ToInt32(reader["MACHINE_NR"]);
cycleTime = Convert.ToDouble(reader["CYCLE_TIME"]);
currentTime = Convert.ToDouble(reader["CURRENT_TIME"]);
machineType = Convert.ToString(reader["TYPE"]);
nrOfLinesPerCm = Convert.ToInt32(reader["NR_OF_LINES_PER_CM"]);
heightOfLamallae = Convert.ToDouble(reader["HEIGHT_OF_LAMALLAE"]);
temp.Add(new Machine(machineNr, cycleTime, currentTime, nrOfLinesPerCm, heightOfLamallae, machineType));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
connection.Close();
}
}
return temp;
}
}
如果您推荐 ADODB,您将如何使用它来实现它?
解决方案
Oracle 客户端没有被弃用,但你的被弃用了。您可以从 Nuget下载Oracle.ManagedDataAccess
(适用于 .Net)或(适用于 .Net Core)。Oracle.ManagedDataAccess.Core
这些是独立客户端,不需要安装本机客户端。
推荐阅读
- scala - 在 Apache Spark 中使用 toDF 方法创建乱序数据帧
- javascript - 为什么我不能设置传递给函数的对象但可以设置它的子对象?
- azure - Azure REST API 返回页面的 HTML
- gnuplot - 在 Gnuplot 中绘制 XRD 图案
- python - 如何将不规则间隔的 x 和 y 坐标张量平均到具有特定单元大小的网格中?
- javascript - Angular *ngIf 显示一个没有内容的 div
- c - 素性检验比较
- android - React Native 从后台打开 Android 应用程序/退出
- java - CrudRepository.save方法调用后的Spring数据重复键值
- sql-server - 使用 SQL Server 的全文搜索优化关键字检索