問題タブ [idatareader]
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# - IDataReader と「HasColumn」、ベスト アプローチ?
列が IDataReader に存在するかどうかを確認するための 2 つの一般的な方法を見てきました。
または:
個人的には、この理由で例外を使用するのが嫌いなので、2 番目のものを使用しました。
ただし、大規模なデータセットでは、RowFilter が列ごとにテーブル スキャンを実行する必要があり、これは非常に遅くなる可能性があると思います。
考え?
.net - DataTable を IDatareader に変換するにはどうすればよいですか?
DataReader は DataTable の構築に使用されるため、DataReader は DataTable よりも高速であることは誰もが知っています。
したがって、既に DataTable があるとすれば....なぜそれを DataReader に変換したいのでしょうか?
IDataProvider という内部インターフェイスを作成しています。このインターフェースは、ローカルと WebService の両方で実装されることを意図しています。インターフェイスには、いくつかの基準情報を受け取り、いくつかのデータを返すメソッド「Getdata」があります。
DataReader は最も高速なデータ取得メカニズムであるため、これを "GetData" メソッドの結果の型として使用したいと考えています。ただし、DataReader はシリアル化できないため、Web サービスを介して Web 経由で転送できないこともわかっています...
Web の場合、ローカル プロキシ クラスでデータを DataTable として要求し、それをローカルで DataReader に変換します。
このように、ローカル アプリケーションは、ローカルまたはリモートでデータにアクセスしているかどうかを知る (または気にする) 必要はありません。
ただし、これを行うには知っておく必要があります...既存の DataTable を DataReader でラップするにはどうすればよいですか?
更新: Web サービスを使用する DataProvider は、そうでないものと切り替え可能であるため、私のビジネス ロジックは Web サービスに保持されません。したがって、businessLogic はクライアント アプリで保持されます。
FWIW私は.Net 3.5 SP1を使用しています
c# - IDataReader.GetName(i) は空のデータ リーダーで動作しますか?
空のデータリーダーの場合、空の値を持つフィールド名を出力したい..つまり
商品: - 価格: -
では、IDataReader.GetName(i) と IDataReader.FieldCount は、結果がない場合に安全に使用できるでしょうか?
asp.net - データソースとして設定すると、IDataReader は自動的に閉じられますか?
アクティブな IDataReader オブジェクトを Repeater、GridView などに割り当てると、DataBind メソッドの呼び出しが完了すると自動的に閉じられるのでしょうか?それとも明示的に自分で閉じる必要がありますか?
c# - DataReaderからDateTimeフィールドにアクセスするときのMySqlConversionException
MySQLコネクタを使用してMySql上にC#アプリケーションがあります; DataReaderリクエストを作成しようとしていますが、クエリは正常に実行されますが、DateTimeフィールドにアクセスしようとすると、MySqlConversionException{"MySQLの日付/時刻値をSystem.DateTimeに変換できません"}が発生します。
これはプロトタイプです
助言がありますか?前もって感謝します
idatareader - idatareader の問題
なぜ私のidatareaderがエラーを起こすのか.....?
ここでデータベースから画像を取得したいsFieldNameはデータベースの列名です......指定されたキャストが無効であることを示しています。メッセージ ......何をしますか?C# ウィンドウ vs05 で作業します....
sFieldNameは文字列です ....それはデータベースの列名で、列の種類は画像です 私のデータベースの列名は「BoardImage」です
sFieldName="ボード画像"
ここで、 oBoardDetailはクラス オブジェクトで、BoardImageはクラス プロパティ タイプのImageです。
c# - phxsoftwareSystem.Data.SQLiteDbDataReaderの誤動作
次の投稿は、phxsoftware(http://sqlite.phxsoftware.com)によるSystem.Data.SQLiteデータプロバイダーに関連しています。
DbDataReaderのReadメソッドやVisualStudio2008に質問(およびおそらく問題)があります。多くの例で、次のようなものが表示されます(このコードはあまり意味がないことを知っています...しかし、それは役立ちます目的):
最初の質問-この例から私が理解していないのは、reader.Read()を事前に呼び出して、whileループで初めてデータが欠落しているということです。たとえば、リーダーに値(3,5,7,9)がある場合、cmd.ExecuteReader()から返されたリーダーは最初は3を指しているはずです、正しいですか?その後、reader.Read()は、whileループ内の後続の呼び出しで5、7、および9に移動します。しかし、reader.Read()は最初の「ltemp + = ...」行の前に呼び出されるため、最初の結果(3)をスキップしますか?
2番目の質問-(そしてこれはVSのバグかもしれないと思い始めています)「if(null!= ...」行のブレークポイントで停止したときに、デバッガーでこのコードのセットをステップスルーすると、Iリーダーに複数の行データ値が割り当てられているポップアップで、マウス操作とドリルダウンを明確に確認できます。ただし、そのポップアップ情報を閉じてから元に戻そうとすると、ドリルダウンすると次の行が表示されます。以前は明らかにデータがあった「列挙では結果が得られなかった」。
誰かがこの振る舞いを説明できますか?
c# - IDataReaderを使用してDBの違いを回避するためのベストプラクティス
IDataReaderからのデータを入力する単純な値オブジェクトがあります(OracleまたはMS SQLデータベースへのクエリの結果である可能性があります)。このオブジェクトのファクトリメソッドは次のようになります。
次に、OracleデータベースとMS SQLデータベースがその特定の列に使用するデータ型の違いに関連する問題が発生しました。Oracleでは、そのデータ型は数値ですが、MSSQLでは使用されるデータ型はsmallintです。
さて、私は次のようなことをすることでこの問題を「修正」することができました:
これを行うためのより良いまたはよりエレガントな方法はありますか?
c# - ExecuteReader を呼び出すときに、基本 DAL クラスから SqlConnection を破棄する
私は、DAL が IDataReader、オブジェクト (int、string など)、または DataSet を返す関数を持つ基本クラスで構成されるプロジェクトに割り当てられました。ExecuteNonQuery 関数も存在します。この DAL は USP (SQL Server) にのみアクセスし、MS の SqlHelper を使用してクエリを実行しています。ベースからの 2 つのサンプル関数を次に示します。
他のクラスはこの基本クラスから派生し、タスク固有の DAL クラスを作成します。たとえば、次のとおりです。
次に、DAL 関数を呼び出し、IDataReader オブジェクトから読み取ったデータに基づいてデータをオブジェクト (Order オブジェクトなど) に入力する BLL クラスがあります。
私の質問はこれです-BaseDalから取得したコードを見ると、ExecuteScalarだけが実際にSqlConnectionオブジェクト(usingステートメント)を終了することに気付くでしょう-これはそこにあるすべての関数の場合です. ExecuteReader では、開いている SqlDataReader オブジェクトを返し、接続を閉じるとリーダーが無効になるため、これを行うことはできません。DAL から IDataReader を取得して使用するすべてのコードで using ステートメントを使用していますが、SqlConnection オブジェクトも破棄されていますか、それとも後の段階で GC されており、すぐに解放しないことで接続プールが損なわれています? もしそうなら、これはどのように治療することができますか?
また、上記の方法よりも DAL を作成するためのより良い方法はありますか? データ ストアにとらわれない DAL についてはあまり心配していません。必要なのは、堅牢で保守が容易な、多くのスレッドから多くの同時接続を取得できる DAL だけです。
これについて何か助けてくれてありがとう。
c# - DALパフォーマンスの向上
現在、ビジネスオブジェクトにデータを入力する方法は、以下のスニペットのようなものを使用しています。
誰かがこのようなものでパフォーマンスを改善する方法の提案がありますか?PopulateFromReaderには、一部のタイプでは、オブジェクトを完全に設定するために、より多くのデータベースルックアップが含まれていることに注意してください。