問題タブ [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.
c# - DataAdapter.Fill(データセット)
で OleDB を介して Access データベースからデータを取得しようとしていますDataSet
。しかし、メソッドDataSet
の後は空です。Fill()
同じステートメントが機能し、D * で手動でトリガーすると 1 行が返されます。
前もって感謝します。
新しい作業コード:
現在、正しいコードが上に掲載されており、より快適にデータにアクセスするための辞書が用意されています。誰かがこの投稿で助けを見つけてくれることを願っています. 作業していただきありがとうございます!
c# - C#型付きデータセット:OleDBDataAdapterは、ExcelSheetではなく型付きデータセットの列名を使用します
WindowsフォームアプリケーションにC#でVS2010を使用しています。
ExcelシートからDataSetにデータをロードする必要があります。DataSetデザイナを使用してDataSetを作成し、テーブルと列を手動で追加しました(FirstTable, Column1, Column2)
。私は列に頻繁にアクセスするので、型指定されていないデータセットを使用する代わりに、型指定されたデータセットを使用する方がコードがはるかにクリーンになります。
FirstTable
OleDBDataAdapterを使用し、Fill onを使用してDataTableにデータを入力したところ、Column1
空Column2
で、Excelシートからの2つの追加列がありました(ExcelCol1, ExcelCol2)
。したがって、同じExcel列の名前を(と呼んだ場合の代わりに)指定しない限り、デザイナFirstTable
をColumn1
介して作成したDataColumnsにデータが入力されません。Column2
ExcelCol1
ExcelCol2
Excelからの列を無視し、すでに定義されているDataColumnsにデータを入力するようにDataSetに指示する方法はありますか?
それが不可能な場合は、DataConnectionを介してExcelシートを接続して、DataTablesのレイアウトを作成できますか?私がよくわからないのは、Excelファイルがユーザー定義であるということだけです。そのため、ユーザーはExcelファイルを参照してデータセットにデータを入力します。ただし、これらすべてのExcelファイルの列は常に同じです。したがって、型付きデータセットを使用してレイアウトをプリセットしたいと思います。
c# - バックグラウンド スレッドで OleDbDataAdapter を使用すると、UI が正しく更新されませんか?
ユーザーが Excel ファイルを選択できるアプリがあり、その Excel ファイルはOleDbDataAdapter
別のスレッドを使用して読み取られ、読み取りが完了すると、ViewModel の Command の CanExecute プロパティが true に更新され、[保存] ボタンが有効になります。
私の問題は、コマンドの PropertyChanged イベントが発生し、CanExecute が true として評価されたとしても、ユーザーがアプリケーションと対話するために何かを行う (クリックする、テキストボックスを選択するなど) まで、UI のボタンが有効にならないことです。 )
問題を示すサンプル コードを次に示します。SaveCommand
とにバインドされた 2 つのボタンに接続し、テストするために呼び出されSelectExcelFileCommand
た列を含む Excel ファイルを作成するだけです。ID
Sheet1
編集
Dispatcher を使用して PropertyChanged イベントを後の優先度で送信し、PropertyChanged 呼び出しを非同期メソッドの外に移動しようとしましたが、どちらのソリューションも UI を正しく更新するために機能しません。
スレッドを削除するか、ディスパッチャ スレッドで Excel から読み取るプロセスを起動すると機能しますが、これらのソリューションはいずれも、Excel ファイルの読み取り中にアプリケーションをフリーズさせます。バックグラウンド スレッドでの読み取りの要点は、ファイルの読み込み中にユーザーがフォームの残りの部分に入力できるようにすることです。このアプリが使用された最後のファイルには、ほぼ 40,000 レコードがあり、アプリケーションが 1、2 分間フリーズしました。
c# - OleDbCommandBuilder を使用した OleDbDataAdapter.Update()
C# と OleDb を使用して Oracle データベースにアクセスしています。クエリからデータを正常に取得しましたが、を使用してデータベースを更新できませんOleDbAdapter.Update()
。私の更新コードは以下のとおりです。(「Adapter」はOleDbAdapter
、データベースからデータを正常に引き出すために使用されるオブジェクトへの参照です。)
現在、「コマンドが準備されていません」というメッセージが表示されます。上記のコードの最初の行のエラー。任意の提案と私は非常に感謝しています.
(編集: ds は DataSet です)
c# - 列名を変更して、ExcelトラフOleDbDataAdapterをC#にインポートします
こんにちは。ExcelドキュメントをC#のDataGridViewにインポートしようとしています。これまでは機能しましたが、データを含む列があり、「並べ替え」する必要があります。
これが単純な場合は、OleDbDataAdapterクエリで「WHEREtest>0」を実行します。
しかし..列の名前はドキュメントごとに変わり、私はそれを頻繁に使用する必要があります。これまでのところ私はこれを手に入れました:
選択では、列の最初の3文字は同じであるが、後続の数字は同じではないという行ウィッチ状態を設定する必要があります。好き:
QTA 12345、QTA 13213、QTA92818。
何かのようなもの:
しかし、同じ最初の3文字とランダムな最後の数字を使用します。
誰かが私を助けてくれますか?
c# - OleDbAdapter を使用してレコードを削除する
C#初心者です。ウェブサイトを作成しようとしています
削除オプションを指定するのに問題があります。エラー表示はありません。しかし、レコードは削除されていません
助けてください
protected void delete_button_Click(オブジェクト送信者, EventArgs e) {
ありがとうございました
c# - OleDbDataAdapter: データベースを更新できません
昨日からこれに取り組んでいますが、データベースを更新できません。3つのテーブルがあります。これは、WinForms の 1 つのコードです。データをロードして表示しますが、グリッドで sth を手動で変更した後、 Update を呼び出してエラーが発生するか、何かがまったく発生しません。
頭がおかしくなったので助けてください。
そしてここ... :
//------------------------------------------------ ----------------------------------
わかった。このために sqlsave メソッドを変更しました
そして今、私はついに「エラーイン」よりも有益な情報を得ることができました
タイプ 'System.InvalidOperationException' の未処理の例外が System.Data.dll で発生しました 追加情報: ExecuteNonQuery には、オープンで使用可能な接続が必要です。接続の現在の状態は閉じています。
sth を変更させてください。これでよろしければお知らせします。
//--------------------------------
番号。番号。速すぎて続かない。保存しようとしているときに再び例外が発生し、接続が開かれましたが、(画像を投稿できません)これをデバッグすると、OleDbCommand 型のオブジェクトが _commandText になっていることがわかります
「UPDATE サモディ セット アイテム=?, データ dyspozycji autem od=?, ...」
等々。これが理由だと思います。私は正しいですか?何をすべきか?
c# - INSERT INTO ステートメントの構文エラーです。誰でもこれで私を助けることができますか?
例外は次のとおりです。
これは、Access 2007 データベースに新しい行を追加するために使用しているコードのチャンクです。このコードのチャンクは、私の db.open および db.close コードの外にあります。以前は接続エラーが発生していましたが、db.dispose 行をコメントアウトしたところ、構文エラーが発生しました。rDS.InsertCommand を実行してみました。エラーは返されませんでしたが、データベースに新しい行が挿入されませんでした。これまでコードでこれを行う必要がなかったので、これを正しい方法で行っているかどうかはわかりません。Form1_Load でデータベース接続が行われたときに問題が発生したかどうか疑問に思っていました。私は Microsoft.ACE.OLEDB.12.0 を使用していましたが、エラーのヘルプを探していると、ほとんどの人が Microsoft.JET.OLEDB.4.0 を使用しているようです。それに切り替えてみましたが、それでもエラーが発生します。私' 問題が何であるかわからないので、助けていただければ幸いです。私はここ数日、自分でそれを理解しようとして自分のPCをじっと見つめていました。しかし、私は運がありませんでした。
.net - DataSetの列のデータ型を選択する方法
データ変換の一環として、Excelシートからデータを読み取る必要があります。特定の列には主に数値データが含まれていますが、Excelシートのどこかに英数字データが含まれている場合があります。問題は、私の変換では英数字の値がnull(または空白。.ToString()メソッドを使用すると "")と見なされることです。
Excelに接続するには、oledb接続を作成し、OleDbDataAdapterを作成してから、DataSetにアダプターを入力します。
接続用のVBコードは次のとおりです。
データアダプターは、最初の行に基づいて列のデータ型を決定していると思いますが、多くの行が表示されます。それは私の問題の始まりである数字の列が数値であると決定します。
Excelで列の書式を変更しても、データセットのデータ型には影響しないようです。
データアダプターまたはデータセットに、列に使用するデータのタイプを指示する方法はありますか?または、SQLステートメントでデータをキャストする必要がありますか?
どんな助けでも大歓迎です!
database - Visual Basic 2008: コマンド ビルダーを使用して、データ リレーションによって接続されたテーブルを更新できますか?
3 つのテーブルがあり、2 つのデータ関係がそれらを接続しています (テーブル 1 -> テーブル 2 <- テーブル 3)。この記事のように、コマンド ビルダーを使用して update、delete、および insert コマンドを生成しようとしてきましたが、このアプローチがうまくいかないようです。現在、挿入コマンドの構文に問題があるというエラーが表示されます。また、Access データベースを使用しています。
これにコマンド ビルダを使用することは可能ですか、それとも挿入、更新、および削除コマンドを自分で作成する必要がありますか?