我正在使用 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。