データテーブルで一意でない値を検索しようとしていますが、このエラーが発生し続けます
フィルタ式'PROV_NEW'はブール項に評価されません。
私がそれを実行するとき。
これは私のコードです:
public class GetData
{
datalogiclayer.TableSetup dal;
DataSet ds;
public delegate void InvalidTableDataDelegate(string ErrorMessage);
public event InvalidTableDataDelegate InvalidTableData;
public delegate void SetupDataLoadedDelegate(System.Data.DataSet dv, string TableName);
public event SetupDataLoadedDelegate SetupDataLoaded;
public GetData()
{
dal = new datalogiclayer.TableSetup();
}
public void Update(DataSets.Setup ds)
{
try
{
string errMsg = string.Empty;
if (ValidateTable(ds.SETUP_MWPROV, out errMsg))
{
dal.UpdateDatabase(ds);
}
else
{
if (InvalidTableData != null)
InvalidTableData(errMsg);
}
}
catch (Exception)
{
throw;
}
}
private bool ValidateTable(DataSets.Setup.SETUP_MWPROVDataTable dt, out string TableIssues)
{
try
{
//NewCode not used for other row
DataRow[] result = dt.Select("PROV_NEW = ''");
DataRow[] dupresults = dt.Select("PROV_NEW");
TableIssues = string.Empty;
DataTable dtTemp = dt.DefaultView.ToTable(true, "NEW_PROV");
if (dupresults.Length == 0)
{
return true;
}
else
{
IEnumerable<DataRow> uniqueCodes = dupresults.AsEnumerable().Distinct(DataRowComparer.Default);
Console.WriteLine("Unique Provider Codes:");
foreach (DataRow NEW_PROV in uniqueCodes)
{
Console.WriteLine(NEW_PROV.Field<Int32>("PROV_NEW"));
}
return false;
}
}
catch (Exception)
{
throw;
}
}
}
ご覧のとおり、データテーブル内の一意の行を検索していますが、例外がスローされているのは、実際にデータを保存するときです。そしてそれは上にあるエラーを与えます。