私のプログラム内にメッセージに関する情報を格納し、新しい情報が追加されたときに検出したいテーブルがあります。私がこれをやっている理由は、新しいデータが常に存在している場合にのみ新しいデータを表示して、常にすべての行を取得して表示したいからです。データセット内の変更された行を確認できません
これを行う方法は、dataSet.HasChanged()関数を使用することでした。これは基本的に新しい行のデータセットをチェックし、DataChangedという関数はdataSet.HasChanged()の値を返します。しかし、私はいつも使用している機能は、ここで
(変更がある場合でも)偽を返す
が関数である...何らかの理由で
public bool DataChanged(string Table)
{
//This is the variable that will be returned
bool ChangesMade;
//Create the adapter
OleDbDataAdapter adapter = new OleDbDataAdapter(Table, connector);
//Clear the current data in the dataset
dataSet.Clear();
//Open the connection and fill the dataset
connector.Open();
adapter.Fill(dataSet, "TableData1");
connector.Close();
return ChangesMade = dataSet.HasChanges();
}
変更が検出されないため、この機能んデータセットに新しいレコードを追加しても常にfalseを返します。
第1項で説明した機能を提供する別の方法は、私の現在の方法の修正が非常に役に立ちます。