問題タブ [sqldataadapter]
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# - SqlDataAdaptor をモックするときに、Moles が「モール化された」DataSet を返さないのはなぜですか?
Moles を使用して、トリッキーなレガシー コードを模倣し始めたところです。本質的に、私は SqlDataAdapter を Moles で動作させようとしています。(ところで、SqlDataReader クラスと SqlCommand クラスでモルを使用して成功しました。) 以下の「単純な」単体テストの例を作成しようとしました。ここでは、SqlDataAdaptor に提供された DataSet を「埋める」ようにさせようとしています。次に、Moles を使用するときは、データ セットからデータを取得する際のさまざまな呼び出しをモックしています。DataSet を正しく設定したので、データを取得すると、期待される「成形された」オブジェクトが返され、正しいことが行われると思います。
以下を実行すると、FillDataSetString ラムダ式が実行され、"d" が "moled" ds に設定されていることがわかります。ただし、Fill メソッドが戻ると、渡された DataSet (「dset」) は、「成形された DataSet」ではなく、通常の「DataSet」のままです。したがって、最初の Assert は正しく動作せず、IndexOutOfRangeException (「テーブル 0 が見つかりません」) をスローします。最初の Assert では、dset.Tables[0].Rows.Count が評価されるときに、次の「モールドされた」メソッドが呼び出されることを期待しています。
しかし、dset は「成形された」DataSet ではないため、これらの呼び出しは発生しません。Moles が SqlDataAdapter のデータセット パラメータを使用して何を行っているかを理解するための助けをいただければ幸いです。
以下を機能させるには、"Moles" をインストールし、System.Data、System.Xml を参照し、"System.Data.moles" 参照を作成する必要があります。Moles フレームワークの 0.94.0.0 を使用しており、これを VS.NET 2010 で実行しています。テスト プロジェクトの「ターゲット フレームワーク」は「.NET Framework 4.0」に設定されています。
data-access-layer - SqlDataAdapter を使用したデータの読み取りと更新に関する質問
SqlDataAdapter を使用してアプリケーションのデータにアクセスして更新する方法の例を探しています。今、私はこのようなものを持っています:
これらはすべてコード ビハインドで発生しますが、私はそれがまったく好きではありません。だから、私はこのようなことをする方法を見つけようとしています:
WhereSaveStudents
メソッドは引き続き SqlDataAdapter を使用して db を更新します。
これを機能させる方法についてのアイデアや、このようなことを行うためのベスト プラクティスへの指針は高く評価されます。ありがとうございました。
select - SQL Server db から NULL 値を選択
select ステートメントに問題があります。
次のようになります。
しかし、その DBNull.Value を機能させる方法がわかりません。代わりに "" を使用してみましたが、うまくいきません。
このステートメントを書き直す方法についてのアイデアはありますか? ありがとうございました。
c# - SqlDataAdapterのメモリ使用量
グリッドに150万をロードするアプリケーションがあります。問題は、大量のメモリを必要とすることです。(1.8 GB)
私は次のことを観察しました、
- SQLクエリアナライザで実行した場合、同じクエリで約60MBかかります
- アプリケーションでは、ExecuteNonQuery()を実行するだけで、約60MBもかかります。
DataTableとして出力するために実行すると問題が発生しますが、実行方法に問題があると感じています。助けてください。
これが私がそれを行う方法です(私がSPを呼び出しても、それは私がパラメーターとして渡すsqlも実行します)
c# - 挿入後の SqlDataAdapter Get Identity
SqlDataAdapter
に塗りつぶした後に を作成しDataset
ます。IDENTITY
私の質問は、挿入後にプライマリ列の値を取得したいということです。たとえば、buttonedit1 editvalue を指定するとId
(これは私のプライマリ列です)、挿入後、ButtonEdit1 テキストで Identity 値を取得したいとします。
次のようなSQLコマンドを使用しない限り、これを作成できますかSelect @IDentity
ありがとう。
c# - データアダプタとSQLコマンド
ms-sqlデータベースの挿入ステートメントを実行するのにどちらが良いでしょうか。
SQL DataAdapterまたはSQLコマンドオブジェクト?
それらのどれが、その間inserting only one row
、そしてその間、より良いでしょうinserting multiple rows
か?
コード使用法の簡単な例:
SQLコマンド
SQLデータアダプタ
asp.net - dataAdapter.fill()にパラメーターを追加します
sqlDataAdapterにパラメーターを追加しようとしています。parameters.add()を使用しようとしましたが、アダプターがsqlCommandではありません。これが私のコードの一部です。
基本的に私はこのようなことをしようとしています:
c# - SqlDataAdapter の ID を取得
挿入された行の ID を取得するために、次のことを行っています。
IDを自動的に取得する方法はありますか?
.net - SqlDataAdapter.Update がサイレント モードで失敗する
私のアプリケーションには、データベース テーブルの内容をユーザーに表示するコントロールがあります。このコントロールは、System.Data.DataSet
オブジェクトに表示するデータを保持します。ユーザーは、コントロールに表示されたデータを変更できます。ユーザーの操作が完了すると、このデータはデータベースにコミットされます。
ユーザーがコントロールで編集を行っているときに、データベース テーブルのデータが外部プロセスによって変更されると (たとえば、いくつかの行が更新されるなど)、問題が発生します。ここでは、データの正確性の問題を無視して、ユーザーがコントロールで行った変更をコミットし、この外部プロセスによって行われた変更を上書きします。
を使用しSqlDataAdapter
てデータベースを更新しています。説明されている使用例では、基になるデータベース テーブルが外部プロセスによって変更されていない場合、SqlDataAdapter.Update
期待どおりに動作します。ただし、ユーザーがテーブルを編集しているときに外部プロセスがテーブルをいじったシナリオではSqlDataAdapter.Update
、例外はスローされず、行が更新されなかったことを示す 0 が返されます。データセットの行に正しいデータが含まれていることを確認したのでRowState
(つまりDataRowState.Modified
)、メソッドに渡すデータが正しいことがわかりSqlDataAdapter.Update
ます。
私の質問には2つの部分があると思います。
SqlDataAdapter.Update
指定されたデータセットでデータベースを更新しないのはなぜですか?- なぜ静かに失敗するのですか?
このブログ エントリを読みましたが、私のコードはAcceptChanges
どこにも呼び出されません。上で述べたように、 をチェックしたので、行が変更されたデータとして正しくマークされていることがわかりましたDataSet
。RowState
vb.net - SQLDataAdapter がデータ テーブルに主キーを入力するとエラーが発生し、sub が終了します
わかりましたので、これには説明が必要です。
私がやろうとしているプロセスは、SQL のテーブル関数からデータを取得し、返された値をデータセットに入力することです。次に、このクエリをさらに 2 回実行して、別の数値テーブルをクエリする必要があります。次に、前のクエリと同じテーブルに追加します。これは可能な限り高速である必要があるため、現在、adapter.fill を使用してデータセットを作成し、dataset.merge を使用してそれらすべてを 1 つのテーブルに配置しています。
問題は、クエリが時間とスペースを浪費する重複を返す可能性があることです。このため、重複を停止するために列 3(part_ID) を主キーにしました。
これを .merge で実行すると、複製の最初のインスタンスで終了し、作成を続行しません。
以下のコードは、これを修正するために使用したものです。よりエレガントなソリューションがあるかどうか疑問に思っていました。
助けやアドバイスをありがとう^__^