問題タブ [oledb]

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

c# - OleDb を介して Access データベースで UPDATE クエリを呼び出すことができないのはなぜですか?

更新 2: これを解決しました。私の回答を参照してください。


OleDb を使用して C# から Microsoft Access データベースでクエリを呼び出していますが、更新クエリを実行できません。

エラーはスローされませんが、更新はデータベースに保持されません。

誰でもこれに光を当てることができますか?


データベースの SQL クエリ:

C#:

接続文字列:


更新 1:

単一のテーブルと単一のクエリを含む新しいデータベースを作成し、C# を実行してテーブルを更新するときにアクセスが閉じられるようにすることで、可能性を絞り込もうとしました。

アップデートはまだ実行されていません。構文の問題だと思いますが (パーミッションの問題でもあるのでしょうか?)、エラー メッセージがなければデバッグはかなり困難です!

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

c# - MicrosoftJetOLEDBを使用したCSVの列制限

約350列を含むCSVからデータをインポートしています。このCSVインポートは修正されており、私はそれを完全に制御できません。

Excel 2003でCSVを開こうとすると、列の制限が255(IV)であるため、部分的にしか読み込まれません。

OleDbとMicrosoft.Jet.OLEDB.4.0を使用してCSVをDataSetにロードすると、255列しか表示されません。さらに悪いことに、これらの255列の一部のデータにアクセスしようとすると、誤ったデータが表示され、値が一貫して分割されません。

CSVをExcelで開き、データを切り捨てて再保存すると、インポートは正常に機能します。

私の質問は、Jet.OLEDBプロバイダーでこの制限に遭遇した人は他にいますか。はいの場合、問題の回避策はありますか?いいえの場合、そのような大きなCSVをロードできる代替ソリューションはありますか?

注:これは1回限りのタスクではありません。エンドユーザーに、必要に応じてこのインポートを実行する参照/アップロードボタンを提供する必要があります。

0 投票する
5 に答える
4639 参照

c# - 長い名前の dbf ファイルで GetOleDbSchemaTable メソッドを使用する方法

C# で取り組んでいるプロジェクトの一環として、.dbf ファイルを読み込む必要があります。最初に、ファイルからスキーマ テーブルを取得します。ファイル名 (拡張子なし) が 8 文字を超えない限り機能するコードがあります。

たとえば、MyLongFilename.dbf という名前のファイルがあるとします。次のコードは機能しません。次の例外がスローされます。オブジェクトが存在すること、およびその名前とパス名のつづりが正しいことを確認してください。」</p>

この例外を回避するための次のステップは、OldDbConnection が好む名前 (「MyLongFilename」ではなく「MyLongF~1」) を使用することです。これにより、次のようになります。

これにより、OleDbConnection が正常に返されます。スキーマテーブルを取得するために、次のことを試します。

これは、行のない DataTable を返します。ファイル名の名前を 8 文字以下に変更すると、このコードが機能し、データベース内の各フィールドの行が返されます。

長いファイル名を使用すると、次のように DataSet を埋めるために使用できるため、返された接続が有効であることがわかります。

これにより、dbf ファイルのすべてのデータを含む DataTable を含む DataSet が返されます。

問題は、長い名前の dbf ファイルのスキーマ テーブルだけを取得するにはどうすればよいかということです。もちろん、ファイルの名前を変更/コピーすることで問題を回避できますが、それは私がしたくないハックです。また、DataSet に上位 1 レコードを入力して、列からスキーマを推測する必要もありません。

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

c# - DBNullとして返されるExcel DateTime

OLEDB ( ) を使用する Excel ファイル読み取りコードはProvider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;正常に動作しますが、特定の日付が DBNull として返されるという問題が引き続き発生します。

元の XLS ドキュメントでは、機能する日付の形式 (en-GB ロケール) は次のとおりです。

そして、次のスタイルは失敗します:

次の例では日付が正しく表示されているため、Excel は両方の日付を認識しています (ただし、強制的にスタイルを正しく設定することはできません)。

自動生成されたオリジナルを変更せずにデータを取得する方法はありますか?


参考までに編集してください。ここに私のデータ読み取りメソッドがあります(dbAdapterがすでに設定されていると仮定します-DBNullは、まったく起動されないキャッチからのものではないことに注意してください):

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

c# - 結果で省略されたExcelの最初の項目(DataSet、OleDB)

[Sample.xlsx]

[応用]

lbExcelDataフォーム上のListBoxコントロールです。

[結果]

「ItemB」、「ItemC」、「ItemD」

[問題]

最初のアイテム「ItemA」が無視されるのはなぜですか?

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

c# - C# Access データベースが使用中または権限エラー

Access 2007 と C# を使用してデータベースを学習しています。これまでは大変でしたが、比較的うまく対処できています。私がしなければならないことは、ユーザーが自分のピンに基づいて持っている金額について、私のデータベース テーブル Accounts にクエリを実行することです。使用している Windows フォームにボタンを配置し、クリックするとデータベースにクエリを実行します。通常どおりボタンを実行/クリックすると、次のエラーが表示されます。

基本的に私の質問は次のとおりです。アクセス許可を設定して、プログラムが自分の Access データベースに自由にアクセスできるようにするにはどうすればよいですか?

私の例外エラー:

例外: System.Data.OleDb.OleDbException: Microsoft Office Access データベース エンジンは、ファイル 'C:\Users\Public' を開くことも書き込むこともできません。すでに別のユーザーが排他的に開いているか、そのデータを表示および書き込みする権限が必要です。

私のコード:

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

c# - dat idx ファイル データベース認識

ディレクトリにいくつかの .dat および .idx ファイルと 1 つの .sup ファイルがあります。データベースの種類を調べるためのツールまたは .net プログラミング手法があるかどうかを知りたいですか?

これが役立つかどうかはわかりませんが、1 つの .dat ファイルをテキスト ファイルとして開くと、次のようになります。

そして、すべての .dat ファイルの共通部分は、先頭の次の文字列 0~09040218 です。

手を貸していただけますか?どうもありがとう。敬具。ホセマ。