問題タブ [oledbdataadapter]

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 に答える
11351 参照

c# - OleDbDataAdapter を使用して Access データベースに挿入する

Access データベースにデータを挿入したいと考えています。

System.Data.OleDb.OleDbException
メッセージ: INSERT INTO ステートメントの構文エラーです。
出典: Microsoft JET データベース エンジン。

挿入コマンドを変更すると:

受信データを変更して、取得したテキスト値を 1 つだけにします。

1 つ以上の必須パラメーターに値が指定されていません。

何か不足していますか?

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

c# - Excelからデータセットにインポートする前にデータを操作する

アプリケーションにインポートする必要のあるExcelシートに2列のデータがあります。

私はこれを使用して行います-

これはデータを正常にインポートしますが、データが正しくインポートされない場合があります。つまり、数値1234567が次のようにインポートされる場合があります。1.23E+06

これは、Excelファイルのデータが(一重引用符を追加する)の'1234567代わりになっている場合に解決できます。1234567

現在、Excelからフェッチしたデータを操作して、データをインポートする前に、プログラム'ですべての値にaを追加して、誤ったインポートを防止できるようにしています。

OleDbDataAdapter.Updateを使用してみましたが、データのインポート後に発生するため、これは役に立たないと思います。あれは正しいですか?

正しいデータをインポートするようにデータを操作できますか?どうすればいいですか?

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

c# - OleDbDataAdapter メソッド (C#) による Excel ファイルからの風変わりな SELECT

次の形式の Excel ファイルがあります。

つまり、最後の行を除いて、列 3 全体が空です。OleDbDataAdapter を介して Excel ファイルにアクセスし、DataTable を返しています。コードは次のとおりです。

ポイントは、このシナリオでは、コードが列 1 と列 2 だけを含む DataTable を返すことです。
私の推測では、JET エンジンはすべての列の最初のセルの型によって列の型を推測しようとします。最初の値が null であるため、列全体が無視されます。
ゼロを埋めようとしましたが、このコードは実際には 3 つの列すべてを返しています。多数の小さなファイルを処理する必要があるため、これは明らかに最も望ましくないソリューションです。
選択範囲の反転 (つまり、 "A1:C5" から "C5:A1" へ) も機能しません。もっとエレガントなものを探しています。
型の不一致 (int 列の varchar セルとその逆) について議論しているいくつかの投稿を既に見つけましたが、実際にはこれに関連するものは何も見つかりませんでした。
読んでくれてありがとう!

編集

またおかしな行動。私は主に Excel 2003 .xls ファイルで作業する必要がありますが、この質問への回答があったので、Excel 2007 .xslx ファイルに対してコードをテストできると思いました。接続文字列は次のとおりです。

「External table is not in the expected format」という例外が発生します。これは、ACE/JET と開いているファイルの間にバージョンの不一致がある場合の標準的な例外であると考えられます。

文字列

は、最新バージョンの OLEDB を使用していることを意味します。ちょっと覗いてみたところ、このバージョンは .xlsx ファイルに接続する必要があるすべての場所で使用されています。
バニラ プロバイダー (Excel 12.0 のみ、IMEX も HDR もなし) だけで試してみましたが、同じ例外が発生します。
.NET 2.0.50727 SP2 を使用していますが、アップグレードする時期でしょうか?

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

c# - C# OleDbDataAdapter.fill メソッドでデータやエラーが発生しない

データ アダプターを使用して、アクセス データベースからデータを取得しています (以下のコードを参照)。Access データベースで SQL を実行すると、期待どおりのデータが得られます。ただし、コードをステップ実行すると、fill メソッドはテーブル定義のみを生成し、行は生成しません。

私は過去にこの手順を何度も使用してきましたが、それらの呼び出しでも引き続き機能します。

アクセス中の SQL は正しいデータを返します。C# ではエラー メッセージは表示されませんが、データも取得されません。誰もこれを前に見たことがありますか?

`
public void GetQueries(ref DataTable tSQL, String tool, string Filter, OleDbConnection lConn) { OleDbDataAdapter dadapt = new OleDbDataAdapter(); //アクセス文字列のデータ アダプタ lSQL = "";

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

c# - Excel を ASP.NET にインポートする際の OleDbDataAdapter と列のキャスト

C# を使用して Excel をインポートしています。ただし、CustomerOrderNR 列には次の種類の値が含まれています。

しかし、これらのコードを実行すると:

System.Double データ型で CustomerOrderNR 列を返しています。データテーブルの列の型を変更したいのですが、次のような例外が返されます。

SQL ステートメントで、Column の DataType を Double から String に変更できませんか?

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

c# - OleDbDataAdapter を使用した Excel からグリッド ビューへの問題

Visual Studio 2010 を使用して Windows フォーム アプリケーションを作成しています。

OleDbDataAdapter メソッドを使用して、Excel ファイルから DataGridView にデータを入力します。

これが私のコードです

問題は、一部のセルが Excel ファイルの出力にマージされた場合に少し異なります。理解を深めるための画像はこちらです。 ここに画像の説明を入力

では、どうすればこの問題を解決できますか?

結合セルを特定できれば、これを修正できると思います。しかし、現時点では明確なアイデアがありません。

Excelファイルにあるように、グリッドビューでExcelデータを表現するより良い方法はありますか?

どんな答えでも助けになるでしょう。提案があれば共有してください。

ありがとう

よはん

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

database - OleDbCommandBuilderOleDbDataAdapter問題VB.Net

2003アクセスデータベースにfirstという名前のフィールドがあります。データアダプタの更新コマンドを実行すると、「UPDATEステートメントの構文エラー」が表示されます。フィールド名をfirstNameに変更し、更新を再試行すると、機能します。データベースを使用し、フィールド「first」を使用するプログラムがすでにたくさんあります。フィールドの名前を変更し、戻ってすべてのプログラムを更新して、firstではなくfirstNameから読み取る必要がありますか?必要がなければ、私は本当にそのルートに行きたくありません。助言がありますか?ありがとう!

(provider = microsoft.jet.oledb.4.0)

*編集:私は指定するつもりでした、私は答えがコマンドビルダーを使用することを望みます(しかしそれはそのようには機能しません)。ご迷惑をおかけして申し訳ありません。

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

c# - Win7で「'Microsoft.ACE.OLEDB.12.0'プロバイダーがローカルマシンに登録されていません」という例外を取り除く方法

Win7マシンでVS2010を使用して.NET4.0フレームワークでASP.NETC#アプリケーションを実行しています。コード内で、Excelファイルを「DataTable」オブジェクトにリンクしたいと思います。つまり、Excelファイル内のデータにアクセスし、それをDataTableオブジェクトに保存したいと思います。そこで、次のコードスニペットを使用しました。

_

リンクhttp://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=enで入手可能なexeをインストールしました

しかし、それでもコードの実行中に同じ例外メッセージが表示されます。私が得ている例外は、「'Microsoft.ACE.OLEDB.12.0'プロバイダーがローカルマシンに登録されていません」です。

PLzはこれを手伝ってくれます。

前もって感謝します。

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

c# - OleDbDataAdapter: テーブルの存在を確認しますか?

ファイルを操作するC#のプログラムがあり、.xls次のようにデータベースにクエリを実行します。

SELECT * FROM [" +sheet + "$]

シートが存在しない場合、プログラムはクラッシュします。

最初にテーブルが存在するかどうかを確認し、存在する場合はクエリを実行する必要があります。

、、またはでクエリを実行する場合、OleDbDataAdapterまたはそのようなオプションはありますか?SQLSELECTINSERTUPDATEDELETE

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

c# - コンボボックスのテキスト値を渡すMS AccessでWHERE句を使用して列を読み取る

私は C# で書かれた Windows アプリケーションに取り組んでおり、MS Access 2003 をデータベースとして使用しています。クエリを書くときに奇妙な問題に直面しています

oledbadapter を使用して実行すると、データセット ビジュアライザーはwhere句を認識せず、空のテーブルを返します。一方

フィルタリングされた列を返します。

ここに私のコードスニペットがあります:

output: where 句でテキスト値を渡すと、空のテーブルが返されます。