0

我正在使用 Oracle DB、C# 和 ODP.NET。我连接到 Oracle DB 并获取数据,但是当更新表中的数据时我得到旧数据。代码;

string conSTR = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 
1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCPDB)))";
OracleConnection oracleCON = new OracleConnection() { ConnectionString = "Data Source=" + conSTR + ";User Id =XXXX;Password=XXXX;Pooling=True" };
        if (oracleCON.State == System.Data.ConnectionState.Closed)
            oracleCON.Open();
        tmr.Tick += delegate
        {
            try
            {                    
                OracleCommand command = new OracleCommand();
                command.Connection = oracleCON;
                command.CommandText = "SELECT state FROM CLX550";
                OracleDataReader dataReader = command.ExecuteReader();
                while (dataReader.Read())
                {
                    Btn1.Content = dataReader.GetInt16(0).ToString();
                }
                command.Dispose();
                dataReader.Close();
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR\n" + exc.Message);
            }
        };
        tmr.Start();

对于此示例,我将状态数据“1”作为 int 获取。在我将数据(ODP.NET 或 SQL Plus)更新为“0”但我得到旧数据后,它仍然是“1”。如果我尝试在 SQL Plus 中获取数据,那么它会返回当前数据。这是什么原因?

我正在使用 PDB DB 和同义词表。Oracle 数据库版本 21c。

4

0 回答 0