問題タブ [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.

0 投票する
0 に答える
90 参照

c# - 項目リストの初期化の最適化についてアドバイスが必要

17,000 個の poco オブジェクトを初期化し、それらをリストに入力するのに 4 ~ 5 分かかるメソッドの 1 つに問題があります。クエリでデータのページングを回避しようとしているため、〜 17,000 を初期化する必要があります。Oracle DB と Microsoft.Practices.EnterpriseLibrary を使用して DB を呼び出しています。その情報が関連しているかどうかはわかりませんが、念のため。ExecuteReader メソッドのリーダー オブジェクトを使用して、Poco クラスの 60 個のプロパティを設定しています。なぜこんなに時間がかかるのか、よくわかりません。クエリの実行には約 3 ~ 5 秒かかります。したがって、コードを変更して速度を上げる方法についてのアドバイスは大歓迎です。また、クエリは ExecuteReader() 呼び出しではなく、reader.Read() 呼び出しで実行されると誰かが私に言いました。私はそれが正しいとは思いませんが、誰かが知っていれば」もしそうなら、あなたは私に手がかりを与えることができますか?再度、感謝します。

POCOクラス

DataAccess と初期化メソッド

0 投票する
5 に答える
132 参照

c# - インターフェイスを返すメソッドを呼び出す方法

いくつかのパラメーターを取るリフレクションを介して型のメソッドを呼び出しています。

ターゲットをメソッドが返す IDataReader にしたいのですが、インターフェイスの新しいインスタンスをインスタンス化できないことは明らかです。

0 投票する
2 に答える
272 参照

c# - SqlCeBulkCopy での IDataReader 実装の失敗

.DAT ファイル (SQL Server からの出力) から SQL CE 4.0 ファイルにデータを一括ロードしようとしています。私は ErikEJ の SqlCeBulkCopy クラスを使用して SQL Server から完全にデータをロードしましたが、.DAT からは問題がありました。

.DAT から読み取る IDataReader を実装するクラスを作成したので、リーダーを SqlCeBulkCopy.WriteToServer メソッドに渡すことができます。リーダーはほとんど問題ないようですが、ヌルに問題があります。NULL が .DAT ファイルから読み取られ、宛先テーブルの NULL 許容列に挿入されると、例外がスローされます。

私は IDataReader インターフェイスを何らかの方法で間違って実装したと信じたくなりました。System.Object の配列に格納されている値があり、IsDBNull メソッドは次のように実装されています。

ここにブレークポイントを設定し、メソッドが呼び出されていないことに注意してください。

それ以外の場合、関連する方法は次のとおりです。

私が受け取る例外は、「入力文字列が正しい形式ではありませんでした」というメッセージを含む FormatException です。私がどこで間違っているのか誰にも分かりますか?

これは、例外からのスタック トレースです。

System.Number.ParseInt32 (文字列 s、NumberStyles スタイル、NumberFormatInfo 情報) で System.Byte.Parse (文字列 s、NumberStyles スタイル、NumberFormatInfo 情報) で System.Convert.ToByte (文字列値、IFormatProvider プロバイダー) で System.Data. ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(ISqlCeBulkCopyInsertAdapter アダプタ) の System.Data.SqlServerCe.SqlCeUpdatableRecord.SetValue(Int32 序数、オブジェクト値) の SqlServerCe.SqlCeUpdatableRecord.SetClrTypeValue(Int32 序数、オブジェクト値、文字列メソッド) ErikEJ.SqlCeBu.SqlCeBu.SqlCeBulk E:\Code\Desktop MySoftware\software\desktop_and_web\MySoftware\MySoftware.Analysis\SqlCeFileConfiguration\SqlCeBulkDataStreamer.cs: E:\Code\Desktop MySoftware\software\desktop_and_web\MySoftware\MySoftware.Analysis の MySoftware.Modules.Analysis.Services.SqlCeDataManagerService.InsertData(String connectionString, String tempWorkFolder, TableInfo tableInfo) の 42 行目\Services\SqlCeDataManagerService.cs:742行目

0 投票する
3 に答える
1933 参照

c# - DB レコード マッピングの Null のチェック

添付されたコードで db null 値を確認するにはどうすればよいですか? 私は新しい C# 変換であることを理解してください...

このコードが行うことは、IDataReader オブジェクトを取得し、それを厳密に型指定されたオブジェクトのリストに変換してマップすることです。しかし、私が見つけたのは、リーダーに null 列が返されると完全にエラーになることです。

コンバータ

マッパー

型付きオブジェクトへの列がここで発生する場所がよくわからないので、自分でやろうと思います...しかし、それがどこにあるのかわかりません。

これはおそらくあまり役​​に立たないことはわかっていますが、私が得ているエラーは次のとおりです。

Unable to cast object of type 'System.DBNull' to type 'System.String'.

そしてそれはで起こります

ノート

クエリ自体の列を ISNULL(column, '') でラップすると、これは発生しませんが、これは確かに解決策ではないことを理解できると思います

0 投票する
0 に答える
389 参照

c# - リーダーが閉じているときに Read を呼び出そうとした無効な試みです,base {System.SystemException} = {"リーダーが閉じているときに深さを呼び出す試みは無効です."}

ストアド プロシージャからデータ リーダーを使用してデータを取得しているときに、この例外が発生しました。リーダーが閉じているときに深さを呼び出す試みが無効です。リーダーが閉じているときに読み取りを呼び出す試みが無効です。

0 投票する
2 に答える
338 参照

c# - IDataReader からのオブジェクトの作成

UserModules と呼ばれる UserModule オブジェクトの ObservableCollection を持つ User オブジェクトを作成するために、以下を作成しました。

私は約持っています。100000 ユーザー レコード、各ユーザーは最大 10 モジュール レコードを持つことができ、これが完了するまでに数分かかります。

これは、提案に応じて、IDataReader から変更することを意味する場合があります。誰かがこれを行うためのより効率的な方法を提案できますか?

マップユーザー

MapUserModule

0 投票する
1 に答える
738 参照

c# - C#で複数結合SQLクエリを実行するにはどうすればよいですか

C# で IDataReader を使用して、特定のビジネス ユニットに対応するデータベースからホスト名のリストを取得しますが、何が問題なのかわかりません。SQL ステートメントに引数が多すぎるか、ここで ExecuteReader メソッドを使用しないでください。ターゲット DB に SP を作成できないため、他の方法でクエリを実行する必要があります。どんな助けでも大歓迎です。

0 投票する
1 に答える
611 参照

c# - NUnit: オートマッパー.ConvertUsing() は null プロパティを持つ Dto を返します

AutoMapper を使用して、IDataReader から単純な DTO にマップしています。

ForMember を使用するとプロパティをマップできますが、ConstructUsing/ConvertUsing を使用するとマップできません。この場合、AutoMapper が null プロパティを持つ DTO を返すため、すべての NUnit テストが失敗します。興味深いのは、この動作が MSTest では発生しないことです。MSTest でテストを実行すると、マッピングが機能します。

コードは次のとおりです。

これは NUnit と MSTest で渡されます。

これは MSTest でのみ渡され、NUnit で null プロパティを持つ Dto を返します。

MyTestMethod は NUnit では呼び出されません。

これは AutoMapper のバグですか? NUnitで?両方?

IDataReader マッピングに AutoMapper を使用すべきではありませんか?

前もって感謝します。