1
私は同じテーブルを持つ2つのデータセットを持っています。計算された列でDataTableを読み込むには?
DATASET1
DATASET2
両方のテーブルの "フルネーム" の欄には
DATASET2については[Grade]+'-'+[Class]
として設定表現プロパティを持って、私は私を定義していますthod - "インポート"。
// DataSet2.cs file
namespace ConsoleApplication1
{
public partial class DataSet2
{
public void Import(DataSet1 dataSet1)
{
this.Group.Load(dataSet1.Group.CreateDataReader());
}
}
}
最後のコード行(dataSet2.Import(dataSet1);
)がInvalidOperationExceptionをスローしています。
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DataSet1 dataSet1 = new DataSet1();
dataSet1.Group.AddGroupRow(1, "A");
dataSet1.Group.AddGroupRow(1, "B");
DataSet2 dataSet2 = new DataSet2();
dataSet2.Import(dataSet1);
}
}
}
これは、「FullName」列が計算列であるためです。 この特定の状況でこの例外を回避する方法を知りたいですか?読み込み中に計算された列をスキップすることは可能ですか?それとも、他の "トリック"がありますか?。
これは、私のプロジェクトの1つで、DataSetsで複数のテーブルを持つ問題を再現したものです。ロード機能は、すべての列をインポートするために使用され、あなたが列を計算している場合に使用することはできませんので
public void Import(DataSet1 dataSet1)
{
//this.Group.Load(dataSet1.Group.CreateDataReader());
foreach(var group in dataSet1.Group)
{
GroupRow g =this.Group.NewGroupRow();
g.Class = group.Class;
g.Grade = group.Grade;
this.Group.AddGroupRow(g);
}
}
を以下のよう