当我从SQLDeveloper运行查询时,它运行良好并检索所有记录。下面的代码在部门询问时检索除一个记录以外的所有记录。有没有缓存新创建的条目不会显示的各种查询?我正在使用Oracle DataAccess客户端,而不是已弃用的客户端。直接数据库连接显示所有记录,C#/ ASP删除单个记录
代码:
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
string currentDatabase = universalDll.getDB();
List<string> majors = new List<string>();
try
{
OracleConnection conn = new OracleConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings[currentDatabase].ConnectionString;
conn.Open();
string sql =
"SELECT DISTINCT description,code " +
"FROM tablea a " +
"JOIN tableb b " +
"ON a.code = b.code ";
sql += "ORDER BY b.description";
OracleCommand executeQuery = new OracleCommand(sql, conn);
executeQuery.CommandType = CommandType.Text;
OracleDataReader dr = executeQuery.ExecuteReader();
while (dr.Read())
{
ddlChooser.Items.Add(new ListItem(dr.GetString(0) + "(" + dr.GetString(1) + ")", dr.GetString(1)));
}
您确定您在C#代码和SQLDeveloper中运行相同的查询吗?当你在SQLDeveloper中运行它时,它是否与新记录的插入位于同一个会话中? –
问题在于:Oracle SQL Developer有时需要您在其他用户可以在数据库中看到它们之前提交更改。尽管我可以看到我的更改已登录,但IIS服务器无法登录。一旦我提交更改,它工作正常。 – Geekender
Oracle DB **总是需要一次提交才能在另一个会话中看到,这就是为什么我问你是否在同一会话中...... –