私は5000レコードを含むデータベースを持っています。私は最初の1000を持っていますが、それはヒッチなしで使用されました。しかし、次の90件のレコードでは、JETドライバは一見何の理由もなくこれらをスキップします。Microsoft Jetは90レコードをスキップします
私はこの原因がわかりません。私はその問題が私のSQLコマンドだとは思わない。しかし、私はここにそれがある場合にそれを掲示しています。注意:SQLコマンド用に文字列を追加するのは良い考えではありませんが、私はこの方法でこれを実行することしかできません。
string queryTest = "Select Serial_Number FROM serialNumbers WHERE Is_Used=false AND (In_Progress=false OR Accessed_Time_Stamp < #" + testTime.ToString() + "#);";
私は@time、その後setCommand.Parameters.AddWithValue("@time", testTime.ToString());
を呼び出すためにtestTime.ToString()
を置き換えることができますどのような方法がある場合、私に知らせてくださいしてください。今のところこれは例外を投げています。
メインの質問に戻る。したがって、JETがスキップするこのグループは90レコードです。私はなぜこれが起こっているのか、誰がこのことを知っているのか不思議に思っていました。
私は最近、5000レコードを作成するためにこのテーブルを別のテーブルにマージしたことにも言及する必要があります。はい、この問題は、マージが行われた最初の90の数字のところで起こっています。また、IDは1000から1002にジャンプします。これが何らかの効果をもたらすかどうかはわかりませんが、私はそれに言及したいと思います。
また、私はC#でこれをコーディングしています。
あなたは完全にスキップされていると思いますか、それともちょうど順不同ですか?クエリに指定された順序はありません。何らかの方法でマージした場合、順序が乱れることがあります。 – DancingFool
データベースでは、正しい順序になっています。これは私が作成したMS Accessデータベースで、MS Accessでデータベースを表示できます。私はテストのために前の100のセットでこのクエリコマンドを使用しました。問題なくシリアル番号を取得できました。しかし、それは100が1から100の順であったからかもしれませんが、私は現在のデータベースのIDを見て、それもID順になっています – codingDude