从 C# OracleDB 运行 SELECT 时没有数据

本文关键字:数据 SELECT OracleDB 运行 | 更新日期: 2023-09-27 18:30:30

我有一个从 Oracle 数据库读取的 C# 应用程序,但在我的应用程序中没有获取任何数据。如果我直接从管理工具运行相同的 SELECT 语句,它会返回数据正常。

static void Selectexample()
    {
       string connStr = @"Data Source=localhost;user id=system;password=123456";

       DbProviderFactory dbFactory= DbProviderFactories.GetFactory("System.Data.OracleClient"); 
        DbConnection con = dbFactory.CreateConnection();
        con.ConnectionString = connStr;
        string sql;
        sql = "SELECT * FROM person";
        DbCommand cmd = dbFactory.CreateCommand();
        cmd.Connection = con;
        cmd.CommandText = sql;

        try
        {   
            con.Open();

            DbDataReader reader = cmd.ExecuteReader();

            string headline = "";
            for (int i = 0; i < reader.FieldCount; i++)
            {
                string s = reader.GetName(i);
                headline += s.PadLeft(20) + " | ";
            }
            Console.WriteLine(headline);

            while (reader.Read())
            {
                string line = "";
                string s1 = (string)reader[0];
                string s2 = (string)reader[1];
                line += ("");
                line += s1.PadLeft(20) + " | ";
                line += s2.PadLeft(20) + " | ";
                Console.WriteLine(line);
            }
        }
        catch (DbException ex)
        {
            Console.WriteLine("fejl: " + ex.Message);
        }
        finally
        {   
            con.Close();
        }
        Console.WriteLine();
        Console.WriteLine("---");
    }

人员的表定义:

create table person
(
cpr char(10) primary key,
name varchar(25),
job varchar(25),
salary int,
zip char(4),
foreign key (zip) references zipcode(zip)
);

我在x64 Windows上运行带有x86 Oracle驱动程序的.Net 3.0

从 C# OracleDB 运行 SELECT 时没有数据

感谢大家的建议。事实证明,管理工作室在插入后不会立即提交数据。您必须在提交数据之前关闭该工具。现在,我的数据显示在我的应用程序中。