我正在尝试在数据表中搜索非唯一值,但我不断收到此错误
过滤器表达式“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;
}
}
}
所以你可以看到我让它在数据表中搜索唯一的行,当抛出异常的时候是我真正去保存数据的时候。它给出了上面的错误。