这是我写的一个例子,尝试连上Oracle,并用OracleCommand命令读取数据库中的记录,显示在控制台上:using System;
using System.Data;
using System.Data.OracleClient;public class MainClass
{
static void Main()
{
OracleConnection conn = new OracleConnection();
conn.StateChange += new StateChangeEventHandler(OnStateChanged);
conn.ConnectionString = "Data Source = chenchong; User Id = system; Password = ;";
try
{
conn.Open();
Console.WriteLine("打开数据库连接成功。");
OracleCommand command = new OracleCommand();
// command.CommandText = "";
command.CommandText = "select nsrmc from scott.nsr where nsrmc like :pNsrmc order by nsrmc";
command.Connection = conn;
OracleParameter parameter = command.Parameters.Add("pNsrmc", OracleType.VarChar);
parameter.Value = "_国%";
OracleDataReader reader = command.ExecuteReader(); // 以下验证是否可以同时打开两个DataReader
OracleCommand command2 = new OracleCommand();
command2.CommandText = "select Count(*) from scott.nsr";
command2.Connection = conn;
OracleDataReader reader2 = command2.ExecuteReader();
reader2.Read();
Console.WriteLine("数据库共有 {0} 个记录。", reader2.GetInt32(0));
reader2.Close(); while (reader.Read())
{
if (!reader.IsDBNull(reader.GetOrdinal("Nsrmc")))
{
Console.WriteLine(reader.GetString(reader.GetOrdinal("Nsrmc")).Trim());
}
// string s = null;
// Console.WriteLine(s);
}
command.CommandText = "select count(nsrmc) from scott.nsr where nsrmc like :pNsrmc order by nsrmc";
Console.WriteLine("符合条件的共有 {0} 个记录。",command.ExecuteScalar());
}
catch (Exception e)
{
Console.WriteLine("出现了异常:{0}", e.ToString());
}
finally
{
if (conn != null)
{
conn.Close();
}
} Console.ReadLine();
} private static void OnStateChanged(object sender, StateChangeEventArgs e)
{
Console.WriteLine("数据库连接的状态发生改变,原状态为:{0},当前状态为:{1}。", e.OriginalState, e.CurrentState);
}
}
using System.Data;
using System.Data.OracleClient;public class MainClass
{
static void Main()
{
OracleConnection conn = new OracleConnection();
conn.StateChange += new StateChangeEventHandler(OnStateChanged);
conn.ConnectionString = "Data Source = chenchong; User Id = system; Password = ;";
try
{
conn.Open();
Console.WriteLine("打开数据库连接成功。");
OracleCommand command = new OracleCommand();
// command.CommandText = "";
command.CommandText = "select nsrmc from scott.nsr where nsrmc like :pNsrmc order by nsrmc";
command.Connection = conn;
OracleParameter parameter = command.Parameters.Add("pNsrmc", OracleType.VarChar);
parameter.Value = "_国%";
OracleDataReader reader = command.ExecuteReader(); // 以下验证是否可以同时打开两个DataReader
OracleCommand command2 = new OracleCommand();
command2.CommandText = "select Count(*) from scott.nsr";
command2.Connection = conn;
OracleDataReader reader2 = command2.ExecuteReader();
reader2.Read();
Console.WriteLine("数据库共有 {0} 个记录。", reader2.GetInt32(0));
reader2.Close(); while (reader.Read())
{
if (!reader.IsDBNull(reader.GetOrdinal("Nsrmc")))
{
Console.WriteLine(reader.GetString(reader.GetOrdinal("Nsrmc")).Trim());
}
// string s = null;
// Console.WriteLine(s);
}
command.CommandText = "select count(nsrmc) from scott.nsr where nsrmc like :pNsrmc order by nsrmc";
Console.WriteLine("符合条件的共有 {0} 个记录。",command.ExecuteScalar());
}
catch (Exception e)
{
Console.WriteLine("出现了异常:{0}", e.ToString());
}
finally
{
if (conn != null)
{
conn.Close();
}
} Console.ReadLine();
} private static void OnStateChanged(object sender, StateChangeEventArgs e)
{
Console.WriteLine("数据库连接的状态发生改变,原状态为:{0},当前状态为:{1}。", e.OriginalState, e.CurrentState);
}
}
安全说明 存储连接字符串的详细信息(例如服务器名称、用户名称和密码)可能会影响应用程序的安全性。若要控制对数据库的访问,一种较为安全的方法是使用 Windows 集成安全性。有关更多信息,请参见数据库安全性。
有两种方法连接到 Oracle 数据库: 使用设计时工具直观操作。
使用编程方式操作。
在服务器资源管理器中连接到 Oracle 数据库
在服务器资源管理器中创建连接 在服务器资源管理器中,右击“数据连接”,然后单击“添加连接”。
在“数据链接属性”对话框中,单击“提供程序”选项卡。
单击“用于 Oracle 的 Microsoft OLE DB 提供程序”,然后单击“下一步”。
键入要访问的数据库所在的服务器。
键入登录到数据源时要用于身份验证的密码。
单击“确定”。
从应用程序连接到 Oracle 数据库
从应用程序创建到数据源的连接有两种方法,一是使用 Visual Studio .NET 设计器直观地完成,一是通过使用代码创建数据连接对象以编程方式完成。以直观方式连接到 Oracle Database
Visual Studio 支持通过以下方式创建数据对象,即将项从服务器资源管理器或“工具箱”的“数据”选项卡中拖到窗体或设计器上。从服务器资源管理器创建连接 在服务器资源管理器中创建到 Oracle 数据库的“数据连接”。有关更多信息,请参见上面标题为“在服务器资源管理器中连接到 Oracle 数据库”的一节。
将连接拖到窗体或设计器上。
组件栏中会出现 OracleConnection 对象。
转到本主题中后面的“后续步骤”一节。
从“工具箱”的“数据”选项卡创建连接 将 OracleConnection 拖到窗体或设计器上。
组件栏中会出现一个未配置的 OracleConnection 对象。 在“属性”窗口中,单击 ConnectionString 属性。
在下拉列表中选择一个现有连接,或者单击“新建连接”打开“数据链接属性”对话框并配置新连接。
转到本主题中后面的“后续步骤”一节。
以编程方式连接到 Oracle 数据库
您可以直接在代码中创建 OracleConnection 对象。以编程方式在应用程序和 Oracle 数据库之间创建连接 下面的代码创建一个 OracleConnection 对象并设置 OracleConnection.ConnectionString 属性。
' Visual Basic
Public Sub ConnectToOracle()
Dim conn As New OracleClient.OracleConnection()
' TODO: Modify the connection string and include any
' additional required properties for your database.
conn.ConnectionString = & _
"Data Source=<oracle data source name>;Integrated Security=yes"
Try
conn.Open()
' Insert code to process data.
Catch ex As Exception
MessageBox.Show("Failed to connect to data source")
Finally
conn.Close()
End Try
End Sub// C#
public void ConnectToOracle()
{
OracleClient.OracleConnection conn =
new OracleClient.OracleConnection ();
// TODO: Modify the connection string and include any
// additional required properties for your database.
conn.ConnectionString = "Data Source=" +
"<oracle data source name>;Integrated Security=yes";
try
{
conn.Open();
// Insert code to process data.
}
catch (Exception ex)
{
MessageBox.Show("Failed to connect to data source");
}
finally
{
conn.Close();
}
}
后续步骤
在应用程序和 Oracle 数据库之间建立了连接后,您可以创建对象来获取和更新数据。下表提供到一些相关主题的链接。要实现的操作 请参见
获取只读数据 使用 DataReader 检索数据
使用数据填充数据集 ADO.NET 数据集
直接执行 SQL 语句 直接执行数据库操作 请参见
通过 ADO.NET 连接到数据源 | 在服务器资源管理器中添加新的数据连接 | 服务器资源管理器中的数据库 | Oracle 数据库 | 可视化数据库工具 | “数据链接属性”对话框