問題タブ [ms-jet-ace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
9089 参照

ms-jet-ace - Microsoft.Jet.OLEDB.4.0を使用してC#からAccessデータベースに行を挿入します。自動番号列はゼロに設定されます

C#とMicrosoft.Jet.OLEDB.4.0プロバイダーを使用して、Accessmdbに行を挿入しています。

はい、私はAccessが最悪だと知っています。これは巨大なレガシーアプリであり、他のすべては問題なく動作します。

テーブルには自動番号列があります。行を挿入しましたが、自動番号列がゼロに設定されています。

私は質問をグーグルで検索し、このテーマに関して見つけたすべての記事を読みました。自動番号列に-1を挿入することを提案しましたが、これは機能しませんでした。私が見つけた他の提案はどれもうまくいきませんでした。

大きなSQLテキスト文字列を連結するのではなく、OleDbParameterを使用しています。

トランザクションありとなしで挿入を試しました。変わりはない。

この挿入を機能させるにはどうすればよいですか(つまり、自動番号列の内容を正しく設定する)?

よろしくお願いします。

アダム・レファート

0 投票する
2 に答える
11128 参照

c# - ADO.NET で新しいデータベース (.mdb) を作成する

空の .mdb ファイルを作成するにはどうすればよいですか? 私は ADO.NET と C# を使用しています。ありがとう!

0 投票する
4 に答える
2090 参照

database - データベース内の数値の「日付」 - 「通常の」日付を使用してそれを操作するには?

日付列が日付値ではなく数値であるこのデータベースを使用しています。

はい、マウスクリックでそれを変更できることは知っていますが、そのデータベースを使用するすべてのアプリケーションは、私の前任者の 1 人によって作成されました (そして、彼の後の誰もがそれを無視して構築しました)。したがって、日付に変更すると、多くのアプリケーションが失敗します。:(

さて、私は特定の日付から別の日付まで、そのデータベースの概要を作成しています。ドロップダウン リストを使用してみましたが、おわかりのように、1 つのリストに 1000 のオプションが含まれているのは非常に不便で、見苦しくさえあります。

私はむしろ、日、月、年の小さな入力フィールドを持っていますが、データベースの数値の日付にはワルツがあります。どういうわけか、日付を数値に戻して計算する必要があります...

これには簡単な解決策があるはずです。右?



アプリケーションに ASP(vbscript) を使用しています。これはイントラ Web 用で、Access データベースがあります。

0 投票する
4 に答える
9332 参照

c# - C# の問題: .MDB ファイルを読み込んで変更を加え、元のファイルに変更を保存する最も簡単な方法は何ですか?

私が取り組んでいる私のプロジェクトはほぼ終了しました。.MDB ファイルを読み込んで、DataGrid にコンテンツを表示し、DataGrid でこれらの変更を取得して .MDB ファイルに保存しようとしています。また、ある .MDB ファイルからテーブルを取得して別の .MDB ファイルに保存できる関数も作成します。もちろん、変更を .MDB ファイルに保存する方法がわからない場合は、これを行うことはできません。

Google を広範囲に調査しましたが、私の質問に対する回答はありません。私は自分自身をこの特定のトピックの初心者だと考えているので、答えを複雑にしすぎないでください - .MDB ファイルを編集する最も簡単な方法が必要です! プログラミング例を教えてください。

  1. 既に DataGrid への接続を確立しているとします。Datagrid によって行われた変更を取得するにはどうすればよいですか? これは答えるのに十分簡単だと確信しています。
  2. 次に、このデータテーブルを取得し、元のデータセットに挿入し、そのデータセットを取得して .MDB ファイルを書き換える方法を知る必要があります。(変更されたテーブルのみを挿入する方法があれば、それをお勧めします。)

事前に感謝します。さらに情報が必要な場合はお知らせください。これはおそらく、このトピックについて私が尋ねなければならない最後のことです...神に感謝します.

編集:

私が使用している .mdb は、Microsoft Access データベースです。(複数の .mdb ファイルがあることさえ知りませんでした)

streamwriter などを使用して .MDB ファイルに直接書き込めないことはわかっていますが、DataSet 情報が既に含まれている .MDB ファイルを生成する方法はありますか? または、既に DataGrid にロードした .MDB ファイルにテーブルを追加する方法があります。方法があるはずです!

繰り返しますが、C# でプログラム的にこれを行う方法が必要です。

編集:

私のプロジェクトはかなり大きいですが、別のクラス ファイルを使用してすべてのデータベース接続を処理しています。私のデザインとソースが本当にずさんであることはわかっていますが、それで仕事は完了します。私は、インターネットで見つけた例と同じくらい上手です。

ここでは、別の形式で DataGrid に接続しているだけであることを思い出してください。Datagrid フォームから私のコードが必要な場合はお知らせください (ただし、なぜそれが必要なのかはわかりません)。DatabaseHandling.cs は、2 つの .MDB ファイルを処理します。そのため、そこに 2 つのデータセットが表示されます。最終的にこれを使用して、あるデータセットからテーブルを取得し、それらを別のデータセットに配置します。これらの値を .MDB ファイルに保存する方法を理解する必要があります。

とにかくこれを行うことはありますか?方法があるはずです...

編集:

私が調査して読んだことから...答えは私の目の前にあると思います。「Update()」コマンドを使用します。これは、実際にはこれを行う簡単な方法があることを再確認していますが、この更新コマンドの使用方法がまったくわからないという問題が残っています。

おそらく、次のように設定できます。

それはできると思いますが、手動で何かを挿入したくありません。代わりにこれらの両方を実行したい:

  • Datagrid で変更された情報を取得し、取得元の Access データベース ファイル (.mdb) を更新します。
  • 別の Access データベース ファイル (.mdb) からテーブルを取得し、それらをセカンダリ Access データベース ファイル (.mdb) に置き換えることができる関数を作成します。どちらのファイルもまったく同じ構造を使用しますが、異なる情報が含まれています。

誰かがこれに対する答えを出してくれることを願っています...私のプロジェクトは完了しました。待っているのは1つの簡単な答えだけです。

よろしくお願いします。

編集:

わかりました...良いニュースです。.mdb ファイル自体を照会する方法を理解しました (と思います)。使用しようとしているSQLコマンドが原因で実行時エラーが発生するため、機能しないコードを次に示します。それは私の次の質問に私を連れて行きます。

DatabaseHandling.cs に追加された新しい関数コード:

ご覧のとおり、実際に接続自体でクエリを実行することができました。これは、実際の Access .MDB ファイルであると思われます。私が言ったように、ファイルに対して実行した SQL クエリは機能せず、使用すると実行時エラーが発生しました。

私が実行しようとしているコマンドは、.MDB ファイルからテーブルを取得し、別の .MDB ファイルの同じタイプのテーブルを上書きすることになっています。上記で試みた SQL コマンドは、.mdb ファイルからテーブルを直接取得し、別のファイルに直接配置しようとしましたが、これは私がやりたいことではありません。.MDB ファイルからすべての情報を取得したい - テーブルを Datatable に入れ、すべての Datatables を Dataset に追加します (これを行いました)。これを 2 つの .MDB ファイルに対して行います。2 つのデータセットを取得したら、各データセットから特定のテーブルを取り出し、次のように各ファイルに追加します。

  • DataSetA >>>>----- [テーブル追加(上書き)] ----->>>> DataSetB
  • DataSetB >>>>----- [テーブルを追加 (上書き)] ----->>>> DataSetA

これらの各データセットを取得し、元の各 Access .MDB ファイルに戻します。基本的に両方のデータベースの同期を維持します。

だから私の質問は、改訂されたものです:

  1. 同じ名前の既存のテーブルを上書きして .MDB ファイルにテーブルを追加する SQL クエリを作成するにはどうすればよいですか。クエリは、変数を追加したいテーブル名に置き換える配列を使用して、実行時に動的に作成できる必要があります。
  2. Datagrid によって DataTable に加えられた変更を取得し、それらを DataTable (または DataSet) に戻して、.MDB ファイルに送信できるようにするにはどうすればよいですか?

私は自分の問題をうまく説明していないと思うので、できる限り詳しく説明しようとしました。さて、この質問はあまりにも長くなりすぎました。これをもっとうまく説明できればいいのにと思います。:[

編集:

以下のユーザーのおかげで、私はほぼ修正を見つけたと思います - キーワードほぼ. 以下は、更新された DatabaseHandling.cs コードです。「データ型が一致しません」という実行時エラーが発生します。これらのテーブルをまったく同じセットアップで別のデータベースにコピーしようとしていることを考えると、それがどのように可能になるかわかりません。

このエラーが発生するのはなぜですか? 両方のテーブルはまったく同じです。私は何を間違っていますか?最悪の場合、まったく同じ構造のテーブルを別の値で挿入する前に、別の Access .MDB ファイルのテーブルを削除するにはどうすればよいですか?

男私はこれを理解できたらいいのに...

編集:

よし、だいぶ離れた。私の質問は新しいものに変化したため、個別に質問する価値があります。開いた接続に対して直接クエリを実行する方法がわかったので、質問に答えてもらいました。皆さん、ありがとうございました!

0 投票する
1 に答える
10027 参照

java - Java での Microsoft Access ファイルの読み取り

JavaでMS Accessファイル(.mdb)を読み取る(および書き込む)方法は? MS Access 用のオープンソースの jdbc ドライバーはありますか?

0 投票する
7 に答える
3598 参照

c# - Access データベース エンジンの長所と短所。SQLite 後の生活

少し前に、どのローカル DB が自分の状況に適しているかについて質問しました。.NET コードと VB6 の両方から DB にアクセスする必要がありました。圧倒的な反響は SQLite でした。しかし、SQLite を引き継ぐことにしました。唯一の OLE DB プロバイダーは、デプロイされた私のソフトウェアのコピーごとにロイヤルティを請求するからです。また、すべての PC でアクティベーション手順を実行する必要があります。

他のオプション (SQL Server Compact エディション - ほとんど機能しない OLE DB プロバイダー、Firebird - 別のドライバーにお金を払いたくないなど) を評価した後、実行可能な唯一の選択肢は を使用することであるという結論に達しました。 Microsoft Access (または Jet エンジン) によって作成された MDB ファイル。

90年代後半から使っていないので、経験者の方に質問です。

  1. データベースがときどき破損するという問題は解決しましたか。
  2. ADO.NET OLEDB Provider を介して達成される c# からの MDB へのアクセスですか、それともネイティブ ソリューションがありますか (私はそれを見つけることができないようです)。
  3. Access の本当にくだらない SQL エディターに代わる実行可能な方法はありますか?

ありがとう。

0 投票する
11 に答える
21722 参照

.net - MS Access (MDB) 同時実行

小規模なプロジェクトの場合、要件が非常に軽い単純なデータベースを利用する必要があります。テーブル数は少なく、合計レコード数は数千以下で、ユーザーは 2 人か 3 人です。私は.NET環境で作業しています。

この場合、データベース サーバー (これらの Express エディションでさえも) は非常に過剰に思えるため、非常に単純な MDB データベースでほとんどの要件を満たすことができます。ただし、同時実行性が心配です。私の考えは、.mdb ファイルをネットワーク共有に配置し、ユーザーが .NET ベースのクライアントからこのファイルにアクセスできるようにすることです。データベースは主に読み取り専用操作を目的としていますが、ユーザーはレコードを更新/削除する必要がある場合もあります。その時点でこれが不可能な場合 (データベースがロックされているなどの理由で)、クライアントで更新を保持し、後で処理することができます。

質問自体は次の点に沿っています。

  • MDB での同時読み取りはどのように処理されますか?
  • 同時更新/削除は MDB でどのように処理されますか?
  • ロックの概念はありますか? .NET アプリでどのように活用できますか?
  • MDB ファイルをネットワーク共有に配置することは良い考えですか、それとも恐ろしい考えですか?

私は .NET で作業しているので、同時実行の問題を検出して適切なアクションを実行する方法も知りたいです。つまり、どの例外をキャッチする必要があり、どのアクションを実行することをお勧めしますか?

編集:問題の私の悪い説明かもしれませんが、ほとんどの回答は本格的なDBサーバーを使用することを勧めているようです。私はサーバーをインストールすることの違いと利点を理解しており、実際に MSSQL と Oracle でかなりの数のプロジェクトを実装してきました。ただし、この質問では、Access とその同時実行の問題のみに関心があるため、db サーバーを提案しないでください。

ご協力いただきありがとうございます。

0 投票する
4 に答える
10737 参照

sql - Microsoft Jet ワイルドカード: アスタリスクまたはパーセント記号?

Microsoft Jet の LIKE 演算子の適切な複数文字ワイルドカードと、それに影響する設定 (ある場合) は何ですか? Microsoft Jet (Access データベース) で実行され、LIKE 演算子で % 記号を使用する古い ASP アプリケーションをサポートしています。彼の複数文字のワイルドカードは *. また、過去に % の代わりに * を使用してクエリを使用してアプリケーションを作成したことはほぼ確実です。最後に、Microsoft Access (アプリケーションとして) も * のみで動作し、% では動作しません (ただし、それがどの程度関連しているかはわかりません)。

有益な結果が得られずに約 20 分間インターネットを検索しました。誰かがすでにそれを知っているかもしれません.とにかく、他のランダムなディスカッションフォーラムよりも、潜在的な回答をstackoverflowに置いておく方が良いでしょう.

0 投票する
3 に答える
11361 参照

sql - DelphiでMSAccessのmdbファイルを(無料で)読んでいますか?

mdb(MS Access)データベースを開いて読み取るためのDelphiコンポーネント/ライブラリを探しています。データベースへの書き込みやデータの表示は行いません。sqlAccessがサポートするものを使用してデータベースを読み取る必要があります。

これは個人的なサイドプロジェクト用です(プログラミングは私の有料の仕事ではありません)ので、Delphi 6、Delphi 2007、またはDelphi 2009(すべてプロフェッショナルエディション)のいずれかで動作する無料または非常に安価なソリューションが必要です。パフォーマンスは重要ではありません、シンプルさは重要です:)