問題タブ [oledbconnection]

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 投票する
7 に答える
22472 参照

c# - OLEDBConnection.Open() が「不明なエラー」を生成する

Excel .xls ファイルをファイル システムにアップロードし、オブジェクト インスタンスで .open() メソッドを使用して oledbconnection オブジェクトでファイルを開き、データをデータベースに保存するアプリケーションがあります。ファイル システムへのファイルのアップロードと書き込みは正常に機能しますが、運用サーバーでのみファイルを開こうとするとエラーが発生します。アプリケーションは、他の 2 つのサーバー (開発サーバーとテスト サーバー) で正常に動作します。

次のコードは、Exception.Message で「Unspecified Error」を生成します。

見積もり:

:引用終了

サーバーの c:\\temp および c:\Documents and Settings\\aspnet\local settings\temp フォルダーは両方とも、\aspnet にフル コントロールを与えます。

ある種のアクセス許可の問題があると思いますが、メモしたフォルダーのアクセス許可と、Excel ファイルがアップロードされているフォルダー/ディレクトリのアクセス許可の間に違いが見つからないようです。ファイルを保存して開くために同じ場所が使用され、私のワークステーションと 2 つの Web サーバーでメソッドが機能します。Windows 2000 SP4 サーバー。

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

asp.net - ASP.NET OleDbConnection の問題

私は ASP.NET Web サイトに取り組んでおり、VB.NET コード ビハインド ファイルを介してページングを行う asp:repeater を使用しています。ただし、データベース接続に問題があります。私が知る限り、ページングは​​機能していますが、確実なデータを取得できません。

データベースは Microsoft Access データベースです。データベースにアクセスする関数は次のとおりです。

ASP.NET は次のとおりです。

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 投票する
2 に答える
18573 参照

.net - Excelのセル値はOLEDBプロバイダーによって切り捨てられます

OleDbConnectionクラスを使用して、Excel2000/2003ブックからデータを取得しています。

これで、255文字を超える長さのワークシートのセルが切り捨てられていることがわかりました。これはMicrosoft.Jet.OLEDBプロバイダーの制限ですか、それとも私にできることはありますか?

誰?

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

ms-access - テーブルが他の人によって開かれた場合、開いているテーブルを他のコンピューターから選択する方法

テーブルが他の人によって開かれたとき、他のコンピュータから開いたテーブルを選択する方法は?

VB 6 と Access データベースの使用

テーブルが他の人または他のソフトウェアによって開かれたときに、他のコンピューターからテーブルを選択したい。

しかし、それはエラーを示しています:

使用できませんでした。ファイルは既に使用されています

テーブルが開いている場合は、テーブルにアクセスしたい。

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

.net - LoginPage は、Excel シートに保存されたデータを使用して UserId とパスワードを検証する必要がありますか?

C# アプリケーションのログイン ページを開発しています。ここでは、Excel シートを使用してユーザー資格情報を保存しています。

  • ここで、私がしなければならないことは、ユーザーが自分の資格情報を入力して [ログイン] ボタンをクリックしたときです。

    1. 「USERIDS」Excel シートを DataTable のオブジェクトにロードします。
    2. 次に、「USERIDS」テーブルの「USER_ID」列で「tbuserid」テキストボックスに指定されたユーザー ID を確認します。
    3. ユーザー ID が一致する場合は、対応する一致レコードの「PASSWORD」フィールドを確認します [つまり、PASSWORD フィールド全体を確認する必要はありません] 注: ユーザー ID が一致しない場合、パスワード フィールドを確認する必要はありません。「ErrorProvider」コントロールを使用してアラート メッセージを表示する

    4. ユーザー ID とパスワードの両方が一致する場合は、このログイン フォームを閉じて、「Form1」フォームを開きます。

  • パスワード フィールドのテキスト ボックスは、'*' 文字で表示されます。

  • 問題: 認証情報を入力した後で [ログイン] ボタンをクリックすると、エラー メッセージが表示されます。

ところで、次の接続文字列ステートメントが使用されます。

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

vb.net - vb.net の oledbcommand による SELECT が最近の変更を取得しない

次のコードを使用して、アクセス データベース内の次の一意の注文番号を計算しています。ServerDB は「System.Data.OleDb.OleDbConnection」です

その後、(別の DB 接続を使用して) WORKORDR を作成すると、コードは新しい「次の注文番号」を取得しません。

例えば

iFoo と iFoo2 の両方に同じ値を返します。

「NewOrderNo」関数の一部として、serverDBを閉じてから再度開くと、機能します。iFoo と iFoo2 が正しいでしょう。

この状況で、接続を閉じて再度開くことなく、「System.Data.OleDb.OleDbConnection」を強制的にデータベースを更新する方法はありますか。たとえば、serverdb.refresh または serverdb.FlushCache に相当するものはありますか

注文の作成方法。 注文を作成した後にトランザクションを更新しなかったことが原因ではないかと思いました. 注文の作成に XSD を使用しています。レコードの作成に使用するコードは...