問題タブ [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.
c# - SqlDataReader.NextResult を呼び出した後にデータが見つからないのはなぜですか?
私の問題は、これが機能しないことです。
しかし、これは機能します。
最初の問題は、リーダーが読み取るデータを見つけられないことです。わかります。
「データが存在しない場合の無効な読み取り試行です。」
誰でも理由がわかりますか?
asp.net - 検索データベースは、sqldatareader を介して結果を gridview に返します
検索ページを作成しようとしています。これにより、管理者は州などの特定の基準でデータベース内のエントリを検索できます (州のようなものですが、国は異なります)。
ここに私がこれまでに持っているコードがあります。問題は、エラーが発生しないことです。しかし、私も結果を得ていません。ページはポスト バックされ、空白の検索ページに戻ります。GridView には結果が表示されません。
ここに私のコードがあります:
.aspx ページには、テキスト ボックス (id: Province) とボタン (id:submit) があります。
私が間違っているところを誰でも見つけることができますか?エラーや結果が得られないときは非常にイライラします:0)
ありがとう!
c# - SqlDataReader 内の SqlDataReader
SqlDataReader
別の中に a を実装するにはどうすればよいSqlDataReader
ですか?
私の問題は、SqlDataReader
. 私は発行while (reader.read())
していますが、while ループ内でSqlDataReader
、データベースから読み取るために別のループを作成する必要があります。しかし、接続が既に開いているという例外が発生しています。
では、私の問題を解決する最善の方法は何ですか?
編集:
clr を使用してストアド プロシージャを作成しています。MultipleActiveResultSets=true;
clr とプロジェクトの両方の接続文字列内に配置しようとしましたが、SQL Server でストアド プロシージャをテストしたときに例外が発生しました。
System.InvalidOperationException: このコマンドに関連付けられている開いている DataReader が既に存在します。これを最初に閉じる必要があります。
vb.net - vb.netのデータリーダー内にデータセットを追加する
質問のタイトルを正しく尋ねたと思います。私の問題を説明させてください-私はvb.netコード(htmltablecell、htmltablerow ..)を介してテーブルを作成しています。このテーブルにはSQLクエリが入力されておらず、完全に機能します。しかし、このテーブル内の1つのテーブルセル内に、完全に異なるクエリを必要とし、各行で単独で実行されるドロップダウンリストを追加する必要があります。したがって、コードは次のとおりです
Sql = "..." rd = ExecuteReader(SqlCnn、Sql)
??? コード内では、ドロップダウンリストに独自のデータリーダーが毎回入力され、whileループとクエリが実行されます。どうすればこれを達成できますか?
sql - SqlDataReader / DbDataReader の実装に関する質問
DbDataReaders が実際にどのように機能するかを知っている人はいますか? 例として SqlDataReader を使用できます。
次のことをすると
データ リーダーはすべての行をメモリ内に持っていますか、それとも 1 つだけを取得し、Read が呼び出されると、データベースに移動して次の行を取得しますか? 1 つだけメモリに取り込むとパフォーマンスが低下するようですが、すべてを取り込むと ExecuteReader の呼び出しに時間がかかります。
私はオブジェクトの消費者であることを知っており、彼らがそれをどのように実装するかは問題ではありませんが、私はただ興味があります.Reflectorが何をしているのかを知るために、Reflectorで数時間過ごすことになると思います.と思ったので、詳しい方にお聞きしたいと思います。
誰かがアイデアを持っているかどうか、私はただ興味があります。
c# - C#: これは DAAB に SqlDataReader を使用する正しい方法ですか?
Microsoft の Data Access Application Block を使い始めたところです。ライブラリを正しく使用するための指示はほとんどありません。これがデータ リーダーの正しい使用方法であるかどうかを知りたかっただけです。
この方法ですべてが閉じられますか?メモリリークの可能性はありますか?
sql - VB.net デバッグ sqldatareader - 即時ウィンドウ
シナリオはこれです。datatable.loadを使用してsqldatareaderをデータテーブルに変換しようとすると、何も返されないように見えるsqldatareaderクエリがあります。
だから私はそれをデバッグし、それが正しくフォーマットされていることを確認するために、それが sqldatareader に入る前に詳細な SQL クエリを取得します。これをコピーして SQL サーバーに貼り付けて実行し、何かが返されるかどうかを確認します。1行です。
Visual Studio に戻ってプログラムを続行し、データ テーブルを作成して sqldatareader を読み込もうとしましたが、空のリーダーが返されました。何が起こっているのか当惑しています。
ここにコードのバージョンをコピーします (使用している正確な SQL クエリではありませんが、閉じます)。
dt にはコンテンツが必要ですが、空です。その SQL クエリを SQL サーバーにコピーして実行すると、結果の行が得られます。
私が間違っていることはありますか?
######### アップデート ############
各 SQL クエリで取得するよりも 1 行少ないように見えることに気付きました。そのため、自分で SQL を実行して 1 行を取得すると、データテーブルには 0 行あるように見えます。クエリが 4 行を返す場合、データテーブルは 3 です!! 非常に奇妙です、何かアイデアはありますか?
######## さらに更新 ############
わかりました datatable.load メソッドを使用する前に、datareader の行をカウントするループを実行しました。私のテストクエリでは、datatable.load メソッドを使用するとすぐに datareader に 4 行 (正しい量) が表示されます。データテーブルが空であると表示されます。
###### Okしたがって、データリーダーは一方向のものであり、それを繰り返して行数を取得すると、他のコードに関する限り、本質的に空です。それが転送のみであり、一度読んだら「リセット」されないことに気づきませんでした。
c# - ストリームがバッファ サイズの倍数である場合の IndexOutOfRangeException
ストリームとバッファの経験はあまりありませんが、プロジェクトのためにそれを行う必要があり、読み取っているストリームがバッファ サイズの倍数である場合にスローされる例外に固執しています。私は選んだ。披露させて:
私のコードはbufferSize
、ストリームから (100、たとえば) バイトを読み取ることから始まります。
次に、ループをループしwhile
ます。
...そして、bufferSize 以外の読み取りに到達すると、ストリームの最後に達したことがわかり、先に進むことができます。
しかし、bufferSize が 100 で、ストリームが 200 の場合、0 から 99、100 から 199 の位置を読み取り、200 から 299 のエラーを読み取ろうとします。0が返ってくれればいいのですが、エラーになってしまいます。それを処理するために私がやっていることは、まあ、try-catchです:
...これでループが終了し、正常に終了しますが、エラー処理でコード フローを制御したくないことは誰もが知っています。
ストリームの長さが不明な場合にストリームの読み取りを処理するより良い (より標準的な?) 方法はありますか? これは、ストリームを読み取るためのかなり合理的な戦略の小さなしわのように思えますが、間違っているかどうかはわかりません。
これの詳細 (投稿用に少しクリーンアップしました) は、LAGEBLOB 列にヒットする MySqlDataReader です。バッファが返されたバイト数よりも大きい場合、または返されたバイト数がの倍数でないbufferSize
場合は常に機能します。その場合、 . をスローしないためIndexOutOfRangeException
です。
.net - SqlDataReader が閉じられるまで出力パラメーターを取得できない場合、なぜ...?
1)
SqlDataReader が使用されている間、関連付けられた SqlConnection は SqlDataReader を提供するためにビジー状態であり、SqlConnection を閉じる以外の操作は実行できません。これは、SqlDataReader の Close メソッドが呼び出されるまでのケースです。たとえば、Close を呼び出すまで、出力パラメーターを取得することはできません。
上記の主張が真である場合、リーダーが閉じられる前に、次のメソッドが出力パラメーターから値を取得できるのはなぜですか。
2)
CommandText プロパティをリセットして、SqlCommand オブジェクトを再利用できます。ただし、新しいコマンドまたは前のコマンドを実行する前に、SqlDataReader を閉じる必要があります。
新しいコマンドを実行する前に sqldatareader を閉じる必要があるのはなぜですか?
ありがとう
asp.net - データリーダーのこのnullチェックの何が問題になっていますか
私も試しました。
エラーは次のとおりです。データが存在しない場合の読み取りの試行が無効です。
私のコードのアイデアは、データが利用可能な場合にのみimgsrc文字列を作成することです。
よろしくお願いします。
ありがとう