gpt4 book ai didi

c# - "Invalid Cast"在 Linq

转载 作者:行者123 更新时间:2023-12-02 05:38:45 36 4
gpt4 key购买 nike

我正在尝试使用以下代码过滤数据表

private void Filter(string text)
{
int outText=0;
if (Int32.TryParse(text, out outText))
{
text = string.Empty;
}
DataTable DT = new DataTable();
DT = PinCDAO.GetArea().AsEnumerable().Where(r => r.Field<int>("AreaID")==Convert.ToInt32(outText) || (r.Field<string>("AreaDescription").Contains(text))).AsDataView().ToTable();

}

我收到错误“指定的转换无效”。因为代码

r => r.Field<int>("AreaID")==Convert.ToInt32(outText) 

我确定 AreaID 列包含整数

请帮我解决这个问题。

最佳答案

尝试代码 - 在代码中处理 null

因为“AreaID”是可为空的字段。

DT = PinCDAO.GetArea().AsEnumerable().Where(r => 
(Convert.IsDBNull(r["AreaID"]) ? 0 : Convert.ToInt32(r["AreaID"])) ==outText
|| (r.Field<string>("AreaDescription").Contains(text))).AsDataView().ToTable();

这段代码很容易处理空值..

我已经回答了问题:"Specified cast is not valid" error in LINQ's orderby clause

关于c# - "Invalid Cast"在 Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11305452/

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