2012-02-08 11 views
0

私は自分の考えをより良くするために奮闘しています。どんな助言も役に立つでしょう。話はここにあります:Excelアドインデータ検証

私は、各行がプロジェクトを代表するプロジェクトがいっぱいです。私は妥当性をチェックするためにデータを検証する必要があります。そのプロジェクトのすべてのデータ要素が有効である場合にのみ、プロジェクトは有効です。プロジェクトで働く人もいます。 1つのプロジェクトで作業する人がたくさんいます(1人のプロジェクトでしか作業できないと仮定します)。ですから、それぞれの人にとって、私はそれがフィールドの1つのセットであることを検証し、それが参照するプロジェクトが実際に存在することを確認する必要があります。すべてが検証されたら、プロジェクトと人をデータベースにプッシュします。

もう一つ考慮すべきことは、何千ものプロジェクトが存在する可能性があるということです。その美徳によって、さらに何千人もの人々がいる可能性があります。

私は心の中で2つの検証方法があります。

  1. は、プロジェクトや、人々が自分のデータの検証を担当するオブジェクトを作成します。これは、検証時にオブジェクトを作成してから、それらがすべて検証された後にプッシュする必要があることを意味します。私はそれが実証するためにこの多くのオブジェクトをメモリに格納し、後で押し込むことが実現可能だとは思わない。
  2. 別の関数を使用してデータを検証します。この関数は、データを見るだけでその型を判別し、人やプロジェクトに属しているかどうかにかかわらず、制約を満たすかどうかを確認します。これは、作成されたプロジェクトと人物オブジェクトを避けますが、それはまた、それらのオブジェクトを作成するためにデータをもう一度渡す必要があることを意味します。また、プロジェクトに別のフィールドを追加すると、バリデータ関数に対応する別の要素を追加する必要があります。

答えて

0

確かに1です。数千のオブジェクトを作成すると問題ありません。あなたはおそらく仕事のためのメモリを持っているでしょう。それはかなりたくさんあります。オブジェクトをできるだけ小さくしておけばOKです。

もし私がVSTOエクセルアドインとして書いても気にしないだろう - 別のASP.NET Webページを書いてExcelファイルをアップロードできる。そこから解析し、検証し、DBに挿入することができます。ちょうど "Yが欠けているためにセルXに失敗しました"というメッセージを吐き出してください。あなたがアドインとしてそれを書くなら、誰かにそれをすべてのユーザのマシンにインストールさせる必要があり、バグの修正はプッシュ・アウトして更新する必要があります。これはPITAになります。私はあなたが本当に賢いエクセルのやりとりをする必要があるならば、VSTOのルートを下って行くだけです。