問題タブ [sqldatareader]
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.
asp.net - リピーターが繰り返されない:0) (asp.net)(vb)
朝のスタックオーバーフロー、
aspx ページに次のコードを含むリピーターがあります。
次に、データを取得するために aspx.vb にこのコードがあります。
「did」が「0」であるかどうかに関係なく、ページにデータが出力されません。ヘッダー テンプレートから「連絡先情報」の h1 ヘッダーを取得するだけです。
sqlsms で s の値をテストしましたが、正常に動作します。役職、姓、電話、ファックス、電子メールはすべてデータベースに存在します。私がチェックしている特定のページは存在し、連絡先情報が 1 セット添付されています。
どこが間違っていますか?
ありがとう!
ps。私の構文は正しいように見えますか?
pps。また、同じ結果を達成するためのさまざまな方法にもオープンです。sqldatasource 経由で試してみましたが、変数をパラメーターとして使用するときに問題が発生しました (変数を選択するオプションはなく、コントロール、クエリ文字列などのみ)。
c# - SqlConnection を既に閉じている場合、SqlDataReader を閉じる/破棄する必要がありますか?
This questionに気づきましたが、私の質問はもう少し具体的です。
使用する利点はありますか
それ以外の
同じ接続で複数のコマンドを実行する場合は明らかに重要です。これは、接続を閉じてから再度開くよりもSqlDataReader
、接続を閉じる方が効率的であるためです (呼び出しによって接続conn.Close();conn.Open();
も解放されます)。
多くの人が、接続リソースを開いたままにしておくことを意味すると主張してSqlDataReader
いますが、それは接続を閉じない場合にのみ当てはまりますか?
c# - SqlDataReader とユーザー コントロール
userControl を使用して SqlDataReader データを表示しようとしています。
メインページで
...
そしてuserControlで
しかし、私はこのエラーが発生し続けます
'RData1' プロパティの文字列表現 '<%=Data2 %>' から 'System.Data.SqlClient.SqlDataReader' 型のオブジェクトを作成できません。
sqldatareader - SQLDataReaderは、コマンドラインユーティリティsqlcmdを使用するよりも遅いですか?
私は最近、sqlcmdコマンドラインユーティリティを使用するC#コードをSqlDataReaderに置き換えることを同僚に提唱していました。古いコードは次を使用します:System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo( "cmd"、 "/ c" + sqlCmd); whersqlCmdは"sqlcmd-S" + serverName + "-y 0 -h-1 -Q" + "\" "+" USE [" + database +"] "+"; + txtQuery.Text + "\ ""; \
次に、結果は正規表現を使用して解析されます。私は、SQLDataReaderを使用することで、業界の慣行に沿ったものになり、デバッグと保守が容易になり、おそらくより高速になると主張しました。ただし、SQLDataReaderのアプローチは少なくとも同じ速度であり、おそらく低速です。私はSQLDataReaderですべてを正しく行っていると思います。コードは次のとおりです。
System.Diagnostics.Stopwatchを使用して両方のアプローチの時間を計測しましたが、コマンドラインユーティリティ(C#コードから呼び出されます)の方が高速に見えます(20〜40%?)。SqlDataReaderには、同じコードが再度呼び出されたときに高速になるという優れた機能がありますが、このアプリケーションではそれを予期していません。
私はすでにこの問題についていくつかの研究を行っています。コマンドラインユーティリティsqlcmdは、OLEDBテクノロジを使用してデータベースにアクセスすることに注意してください。それはADO.NETよりも高速ですか?特にコマンドラインユーティリティのアプローチにはプロセスの起動が含まれるため、私は本当に驚いています。本当に遅くなると思いました。
何かご意見は?
ありがとう、デイブ
asp.net - sqlDataReader に問題がある
sqlDataReader を使用してデータを取得し、セッション変数に設定しています。問題は、式を操作したくないことです。テーブル内の他の列は参照できますが、式は参照できません。SQLは機能します。コードは以下です。前もってありがとう、アンソニー
c# - ここでIDisposableを実装する必要がありますか?
SQL Serverを呼び出す私のメソッドは戻りますが、DataReader
私がしなければならないこと(つまりDataReader
、ページコードビハインドにある呼び出し元のメソッドに戻る)のために、SQLを呼び出すメソッドのクラスの接続を閉じることができませんサーバ。このため、私は最終的にまたはブロックを使用していません。
クラスを実装させるためにリソースを破棄する正しい方法はありますIDisposable
か?または、アンマネージリソース(クラスレベルのフィールド)を呼び出し元から明示的に破棄する必要がありますか?
編集:データリーダーからの特定のデータをlistitemコントロールにバインドする必要があるため、データリーダーを送り返します。そのため、呼び出し元のクラス(Codebehindページ)では、次のようにします。
enterprise-library - SQLDataReader のキャスト エラー
私のサイトはエンタープライズ ライブラリ v 5.0 を使用しています。主にDAAB。executecalar、executedataset などの一部の関数は期待どおりに動作しています。Readers の使用を開始すると問題が発生する
インクルードクラスにこの関数があります:
これは aspx.vb から次のように呼び出されます。
これにより、db.ExecuteReader 行で次のエラーが発生します。
タイプ 'Microsoft.Practices.EnterpriseLibrary.Data.RefCountingDataReader' のオブジェクトをタイプ 'System.Data.SqlClient.SqlDataReader' にキャストできません。
これを機能させる方法について、誰かが光を当てることができますか。entlib を介してリーダーを扱う場合、常に問題が発生しますか?
c# - DataReader - ハードコード序数?
からデータを返すときDataReader
は、通常、 の序数参照を使用しDataReader
て関連する列を取得します。
また
また
私は常にこれを実行してきました。これは、早い段階で、dr["ColumnName"]
またはより洗練された方法でインデックスを作成するとパフォーマンスが低下することを知らされたためです。
ただし、データ エンティティへのすべての参照がますます強く型付けされるようになっている一方で、私はこれに違和感を感じています。上記が をチェックしないことも承知していDBNull
ます。
からデータを返す最も堅牢な方法は何DataReader
ですか?
c# - C#: 実行時間の長い SQL リーダー ループでクリーン ランを強制しますか?
SQL db テーブルから 2 つの列を読み取る SQL データ リーダーがあります。そのビットが完了すると、別の 2 つの列の選択が再び開始されます。
私は一度にすべてを引っ張りますが、それはまったく別の一連の課題を提示します.
私の問題は、テーブルに大量のデータ (約 300 万行程度) が含まれているため、セット全体を操作するのが少し面倒なことです。
フィールド値を検証しようとしているので、ID 列を取得してから他の列の 1 つを取得し、結果が別のデータベースに保存される検証パイプラインを介して列の各値を実行しています。
私の問題は、リーダーが 1 つの列の処理の終わりに達したときに、このプロセスが約 700MB を使用し、通過する列が約 200 あるため、使用されている RAM のすべての小さなブロックをすぐに強制的にクリーンアップする必要があることです。
完全なガベージコレクトがなければ、間違いなくRAMが不足します。
どうすればこれを行うことができるか、誰にもアイデアがありますか?
私は多くの小さな再利用可能なオブジェクトを使用しています。私の考えでは、各読み取りサイクルの最後に GC.Collect() を呼び出すだけですべてがフラッシュされると考えていましたが、残念ながら何らかの理由でそれは起こっていません。
わかりましたこれが適合することを願っていますが、問題の方法は次のとおりです...
c# - 計算結果セット フィールドからの SqlDataReader GetBoolean
SQL SPROC 結果セットに、1 または 0 (つまり、True/False) を返す計算 CASE ステートメントであるフィールドがあります。
SqlDataReader クラスの GetBoolean メソッドを使用しようとすると、例外がスローされます。
任意の提案をいただければ幸いです。