問題タブ [datareader]
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.
vb.net - DataReader データに基づいてオブジェクトの配列を作成する
質問を適切に表現する方法がわかりませんが、このようなことを達成したいと考えています。
Productsという名前のクラスがあります
コード ビハインド ページの 1 つで、SQL コマンドからデータを取得し、それを datareader オブジェクトに配置しています。
データリーダーの各行が実際にそのクラスのインスタンスになるようにクラスを宣言するにはどうすればよいでしょうか?
たとえば、次のようにします。
同じことをすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません。
私はこれにかなり困惑しています。どんなヒントでも大歓迎です。ありがとう。
asp.net - 特定の数のレコードが返されると、SqlHelper.ExecuteReader の結果がさまざまで予期しないものになる
注:何が問題なのかを知るためにすべてを読む必要はないかもしれません...必要に応じて、3 つのシナリオに関する部分までスキップしてください。これを実装しようとした方法とエラーが発生した場所に関する背景情報が必要な場合にのみ、最初をお読みください。
まず、特定の のテーブルにClients
格納されている のリストを取得しようとしています。CRM_Clients
callerId
メソッドを使用して、コントローラーからクライアントを取得しますSelectLiveClientsForCaller
。次に、メッセージはstatic Instance
DataProvider クラスのメソッドを介して DAL に渡されます。
私DataProvider
のクラスは、利用可能なすべてのメソッドの概要を説明する抽象クラスSqlDataProvider
です。
サブクラスSqlDataProvider
では、SelectLiveClientsForCaller
メソッドが実際に処理SqlHelper.ExecuteReader
され、ストアド プロシージャが呼び出されますCRM_Clients_SelectLiveForCaller
。
最後に、ストアド プロシージャCRM_Clients_SelectLiveForCaller
指定された の削除されていないすべてのクライアントを返しますcallerid
。
これにより、行が戻ってコントローラーから結果が返されます...
私がこれまでに気づいた3つのシナリオがあります
ストアド プロシージャ (SQL Server mgmt studio を介して実行) からレコードが返されない場合、一連のメソッドを呼び出すと
reader.Read()
false が返され、完全にスキップされます。ストアド プロシージャから返されたレコードが 1 つある場合 (SQL Server mgmt studio を介して実行)、一連のメソッドを呼び出すとtrue
reader.Read()
が返されますが、結果を列挙すると、IEnumerable が結果を返さなかったことを示すメッセージが表示されます。ストアド プロシージャから返されるレコードが 2 つある場合 (SQL Server mgmt studio を介して実行)、一連のメソッドを呼び出すとtrue
reader.Read()
が返されますが、結果を列挙すると 2 つではなく 1 つのレコードしか返されません。
各シナリオでこれらの結果が得られる理由を誰か説明できますか?
さらに情報が必要な場合はお問い合わせください。できるだけ早くこれを更新します。
ありがとう、
マット
.net - DataReaderを2回繰り返します
DataReaderを2回繰り返す必要があります。DataSetsを使用せずに、クエリを2回実行せずにこれを行う方法はありますか?ちなみに、私はC#を使用しています。
ありがとう
sql - columnname 経由の DataReader.GetString()
これを行うと泣きたくなりますが、この方法以外の列名による型固有の検索メソッドの使用方法がわかりません。もっと良い方法があることを教えてください。これは特にDB2向けですが、可能であればMS Sqlでもソリューションが機能することを望みます
mysql - vb.net のデータ リーダー
この for ループに相当する while ループを作成するにはどうすればよいですか。mysqlデータベースのテーブルの1行から読み取って、vb.netのコンボボックスに表示できるようにしました。
私はこのコードを使用しますが、行に 3 つ以上のアイテムが追加されている場合は、まったく役に立ちません。
その Drug_type 行からすべてのデータを読み取りたいのですが、助けてください、ありがとう
asp.net-mvc - ランダムなDataReaderエラーとスレッド固有のDataContextにより、DataLoadOptionsを変更できます
私の.NETMVCプロジェクトは複数のユーザーでテストの段階に達しており、Linq2Sql DataReaderの問題に関連して(サイト内の任意の画面から)一見ランダムなエラーが発生しています
。および
'ExecuteReaderには、開いていて利用可能な接続が必要です。接続の現在の状態は閉じられています。
これらのエラーは、リンクがダブルクリックされた場合、ブラウザの複数のタブ、または異なるブラウザが同時に更新された場合のシングルユーザーテスト中にも頻繁に表示されません。
これらの問題がDataContextのスレッド化の問題にあるのではないかと思います。
現在、私はビジネスプロセスごとに個別のリポジトリを使用するリポジトリアプローチを使用しています。各リポジトリクラスは、そのコンストラクタでDataContextインスタンスを起動し、これはリポジトリ内のほとんどのメソッドで使用されます。
ただし、一部のメソッドはDataLoadOptionsを更新して、ビューデータの積極的な読み込みを強制するため、これらのメソッドはDataContextの独自のインスタンスを作成します。
また、一部の画面には複数のビジネスオブジェクトからの情報が表示されるため、1つのリクエストに2つまたは3つのリポジトリが含まれる場合があります。その結果、リクエストごとに多数の個別のDataContextインスタンスが作成される可能性があります。
必要に応じてDataLoadOptionsを使用し、クエリ結果にToList()を適用して、すべてが事前に読み込まれるようにする(ビューがレンダリングされるまで待機しない)ようにすることで、積極的な読み込みアプローチを適用しようとしました。したがって、各DataContextはかなり短い期間。
エラーは同じDataContextを再利用する複数のスレッドに関連しているように見えるので、Rick Strahlのスレッド固有のDataContextFactory(http://www.west-wind.com )に沿って、リクエストごとに1つのDataContextを実装することを考えています。 /weblog/posts/246222.aspx )またはSteve Sandersonの例( http://blog.stevensanderson.com/2007/11/29/linq-to-sql-the-multi)のような単純な「作業単位データストア」アプローチ-tier-story /)。
しかし、解決すべきDataLoadOptionsの問題があります。追加のスレッド固有のDataContextを作成することもできますが、それは、リクエストごとに1つのDataContextを使用するという私の目標からは外れているようです。したがって、同じDataContextを再利用するが、Kevin Watkinの例( http://www.mrkwatkins.co.uk/Blog/2010/05/)のように一部のメソッドのLoadOptionsを一時的に変更するか
、標準のDataLoadOptionsアプローチを廃止することを検討しています。 Visual Studioマガジン(http://visualstudiomagazine.com/Articles/2007/11/01/Optimize-LINQ-to-SQL-Performance.aspx?ページ=3)
だから私の質問は、誰かが同様のランダムなDataReaderの問題を経験したことがありますか、どのようにそれらを解決しましたか、そして私がリンクしたそれらのソリューションを実装することによって問題を解決する可能性がありますか?
いつものように時間は厳しいので、問題が実際にどこか別の場所にある場合は、ソリューションの実装に費やしたくありません。どんな助けでも大歓迎です!
PS。これは非常に高レベルの質問であり、問題が実際にどこにあるのかわからないため、特定のコード例は含めていません。
c# - パラメーターを持つ DataReader;
現在、DataSet を使用した MySQL データベースに苦労しています。問題は、大量のメモリを使用することです(ネット上のどこかで見つけたように、DataReaderを使用している場合よりもほぼ4倍のメモリを使用しています)。私が考えていたのは、SQL SELECT コマンドに DataReader を使用する関数を作成することです。
私が現在考えているのは(例)です:
しかし、それは間違った方法だと感じています。まず第一に、私はパラメータを使用していません。2つ目は、見た目が汚いことです。誰でも何か提案してください。
datareader - リーダーが閉じているときに FieldCount を呼び出す試みは無効です
上記のエラーは、データベースから受信したデータに対して dataReader.Read を実行しようとすると発生します。そこには2つの行があることがわかっているので、実際にはデータが存在しないため、そうではありません。
CommandBehavior.CloseConnection が問題の原因ではないでしょうか? ExecuteReader の直後にこれを行う必要があると言われましたか? これは正しいです?
助けてくれてありがとう。
クレア
c# - DataSetをDataReaderに変換するにはどうすればよいですか?
DataSetをDataReaderに変換するにはどうすればよいですか?
c# - SQL をファイルにパイプする
結果をパイプする方法についてのアイデア...
DbCommand.ExecuteReader() から返される DbDataReader を使用してファイルに?