首先,要使用C#连接Oracle数据库,需要引用Oracle.ManagedDataAccess.dll库,并且在代码中使用相应的命名空间。以下是使用Oracle.ManagedDataAccess.dll连接Oracle数据库的步骤:
步骤一:引用Oracle.ManagedDataAccess.dll文件
在Visual Studio中新建项目后,右键“引用”选项,选择“添加引用”,然后在弹出的对话框中,选择“浏览”,找到您下载并安装的Oracle.ManagedDataAccess.dll文件,加入到项目中。
步骤二:引用命名空间
在C#的代码中,需要引用Oracle.ManagedDataAccess.Client命名空间。在代码开头添加以下命名空间:
using Oracle.ManagedDataAccess.Client;
步骤三:创建数据库连接对象
使用Oracle.ManagedDataAccess.Client的OracleConnection类创建一个Oracle数据库的连接对象。连接字符串包括了访问数据库的必要信息,例如主机名、用户名、密码等等。
OracleConnection conn = new Oracle.ManagedDataAccess.Client.OracleConnection();
conn.ConnectionString = "User Id=用户名;Password=密码;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=主机名或IP)(PORT=端口号)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=服务名)))";
步骤四:打开数据库连接
打开连接对象以便进行操作。
conn.Open();
步骤五:执行查询,获取数据
在步骤四中,连接已经打开,可以执行查询语句,并获取查询结果。
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM 表名";
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
// 处理数据
}
reader.Close();
步骤六:关闭数据库连接
数据操作完成时,需要关闭连接对象。
conn.Close();
其中,以下是两个简单的实例,展示了如何使用Oracle.ManagedDataAccess.dll来获取Oracle数据库表中的数据:
示例一:获取学生表中的所有数据
using System;
using System.Data;
using Oracle.ManagedDataAccess.Client;
namespace OracleDatabaseQuery
{
class Program
{
static void Main(string[] args)
{
string connStr = "user id=username;password=password;data source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ip address)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))";
using (OracleConnection conn = new OracleConnection(connStr))
{
conn.Open();
OracleCommand cmd = new OracleCommand("SELECT * FROM student", conn);
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["id"].ToString() + "\t" + row["name"].ToString() + "\t" + row["age"].ToString() + "\t" + row["gender"].ToString());
}
conn.Close();
}
}
}
}
示例二:获取商品表中价格大于100的数据
using System;
using System.Data;
using Oracle.ManagedDataAccess.Client;
namespace OracleDatabaseQuery
{
class Program
{
static void Main(string[] args)
{
string connStr = "user id=username;password=password;data source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ip address)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))";
using (OracleConnection conn = new OracleConnection(connStr))
{
conn.Open();
OracleCommand cmd = new OracleCommand("SELECT * FROM commodity WHERE price > 100", conn);
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["id"].ToString() + "\t" + row["name"].ToString() + "\t" + row["price"].ToString());
}
conn.Close();
}
}
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#连接Oracle数据库使用Oracle.ManagedDataAccess.dll - Python技术站