コピーや集計など、メソッドを呼び出すために使用できる指定された列を持つデータテーブルクラスを作成して、レコードを繰り返し処理してテーブルに追加できる場所を作成します。再利用可能なデータオブジェクトを作成します。
私は同じように、私はプライベートとパブリック変数セットを作成して、私のデフォルトにテーブルの値を割り当てることができると思った:
private DataTable newTable;
public DataTable NewTable
{
get { return newTable; }
set
{
DataTable newTable= new DT();
newTable.Columns.Add("Name", typeof(string));
newTable.Columns.Add("Id", typeof(int));
}
}
「私の考えは、人がそのテーブルを得ることができるということでしたが、彼らはcouldnデフォルトに設定されているため、設定しないでください。しかし、私は後でメソッドでそれを使用しても、これは常にnullになるというインターフェースからのメッセージを見ています。私が撮った
別の刺しが設定されているデータテーブルで上記を含む、私はこの方法で使用することができ、静的クラスを作成しました:
static DataTable myDt()
{
DataTable myDt = new DT();
myDt.Columns.Add("Name", typeof(string));
myDt.Columns.Add("Id", typeof(int));
}
これは私が繰り返しで必要なように機能していません誰かが100,000を超えるレコードを繰り返しているときは、毎回データテーブルを作成する必要はありません。私はデータテーブルを一度作成して定義を作成し、一度作成したデータ行を作成し、各反復で定義からの列名に基づいて新しい行にデータを追加します。私の考えでは、クラスには決して変更されないデータテーブル定義と、各繰り返しで変更されてテーブルに追加されるデータ行があると考えました。
私がしようとしていることに基づいて、どこが間違っているのでしょうか、これは可能ですか?
初期の問題は、設定者がプライベート変数を設定せず、単に新しい変数を作成してそれを放棄することです。つまり、クラスレベルの 'newTable'は常に' null'です。しかし、ここでより重要な設計上の問題は、設定者が実際に設定した内容を設定していないことです。誤解を招きやすく、時間の経過とともにデバッグが困難なあらゆる種類の論理エラーが発生します。 – David
'DataTable newTable = new DT();'は、 'private DataTable newTable;と同じDataTableではありません。その変数を 'set'でクラスレベルのDataTableに隠しています。 –