0

SQLDeveloperからクエリを実行すると、正常に実行され、すべてのレコードが取得されます。以下のコードは、部門が質問しているときに1つを除くすべてのレコードを取得しています。新しく作成されたエントリでは表示されない種類のクエリのキャッシュはありますか?非推奨のクライアントではなく、OracleDataAccessクライアントを使用しています。

コード:

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)));
            }
4

2 に答える 2

0

細字で、OracleDataReaderが最初のレコードの前に開始するので、Read()が新しく開いたデータセットの最初のレコードに進むことがわかります。

最後のRead()がfalseを返し、チューザーに追加されないという点で、ステートメントを修正します。

于 2012-05-31T14:45:22.250 に答える
0

問題は次のとおりです。OracleSQLDeveloperでは、他のユーザーがデータベースで変更を表示する前に、変更をコミットする必要がある場合があります。ログインした状態で変更を確認できましたが、IISサーバーでは確認できませんでした。変更をコミットすると、正常に機能しました。

于 2012-05-31T15:32:07.477 に答える