gpt4 book ai didi

c# - 一直报错,不知道为什么

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:15 25 4
gpt4 key购买 nike

我正在尝试在数据表中搜索非唯一值,但我不断收到此错误

Filter expression 'PROV_NEW' does not evaluate to a Boolean term.



当我运行它时。

这是我的代码:
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;
}
}
}

所以你可以看到我让它在数据表中搜索唯一的行,当抛出异常的时候是我真正去保存数据的时候。它给出了上面的错误。

最佳答案

        DataRow[] dupresults = dt.Select("PROV_NEW");
dt.Select 的参数是一个过滤器。 "PROV_NEW"不是有效的过滤器,因为表达式不会产生 bool 值。我相信您将此与 SQL 混淆了,您可以在其中要求它选择单个列。但是您不需要这样做,因为稍后您需要从 PROV_NEW 列中选择 distinct。如果你想确保整行是不同的,那么这就是你需要做的。

如果您只想比较 PROV_NEW 列,您可以编写一个自定义相等比较器,它只查看您的 PROV_NEW 列。您可以在调用 distinct 时引用您的自定义比较器与 > this version <.

或者 Grant Winney建议您可以在使用 distinct 之前使用 Linq 仅选择单列。引用 their answer 中的评论.

关于c# - 一直报错,不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com