c# - OleDbCommandBuilderでのOleDbDataAdapter.Update()

c# oledb oledbcommand oledbdataadapter

C#とOleDbを使用してOracleデータベースにアクセスしています。クエリからデータを正常にプルしましたが、OleDbAdapter.Update()を使用してデータベースを更新できません。更新コードは以下のとおりです。 (「アダプタ」は、データベースからデータを正常にプルするために使用されるOleDbAdapterオブジェクトへの参照です。)

OleDbCommandBuilder builder = new OleDbCommandBuilder(Adapter);
Adapter.UpdateCommand = builder.GetUpdateCommand();
Adapter.UpdateCommand.Prepare();
Adapter.Update(ds);
ds.AcceptChanges();


「コマンドが準備されていません」というメッセージが表示されます。上記のコードの最初の行のエラー。任意の提案と私は非常に感謝します。

(編集:dsはDataSetです)
答え
ストアドプロシージャにクエリを実行したため、バージョンが機能していません。

考えてみてください。機能するには、キーなどのすべての情報が必要です。ストアドプロシージャでテーブルを結合し、いくつかの重要な主キーなしで行のサブセットのみを選択するとどうなりますか?

そのような場合は、ストアード・プロシージャーを作成/取得するか、自分で照会してそれをアダプターに渡す必要がある場合があります。
関連記事

c# - Fluent NHibernate:ManyToManyでwhere句フィルターをマップする方法

c# - バインドされたクラスからXmlNode [] 'Any'プロパティにテキストコンテンツ要素を割り当てる最も簡単な方法は?

c# - Win32_PrintJobからページの総数を取得します

c# - LINQクエリ、特定の小数点のある結果を無視

c# - HtmlTextWriter.WriteAttributeを単一引用符で行う方法は?

c# - DbConnection.GetSchema(“ Tables”)は、1つのデータベースのテーブルのみを返します

c# - Facebook C#SDK-壁に投稿

c# - 生成されたデータリーダーを使用したグリッドビューの並べ替えとページング

c# - 順不同のログファイルでの検索

c# - TabControlでの画像の配置に関する問題