这是我写的一个例子,尝试连上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);
}
}

解决方案 »

  1.   

    连接到 Oracle 数据库时,使用“用于 Oracle 的 Microsoft OLE DB 提供程序”。注意   若要对 Oracle 数据库启用服务器资源管理器中的拖放支持功能,数据连接必须使用“用于 Oracle 的 Microsoft OLE DB 提供程序”。
    安全说明   存储连接字符串的详细信息(例如服务器名称、用户名称和密码)可能会影响应用程序的安全性。若要控制对数据库的访问,一种较为安全的方法是使用 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 数据库 | 可视化数据库工具 | “数据链接属性”对话框