C# 到Linq的Oracle SQL语句不工作
我有一个需要在SQL中转换的查询。一直在寻找这样做了一段时间,但没有成功 这是ORACLE查询C# 到Linq的Oracle SQL语句不工作,c#,linq,oracle,C#,Linq,Oracle,我有一个需要在SQL中转换的查询。一直在寻找这样做了一段时间,但没有成功 这是ORACLE查询 SELECT DRKY AS REASON_CODE, DRDL01 AS DESCRIPTION FROM shema.SourceTable WHERE drsy = '00' AND DRDL01 IS NOT NULL AND (drrt = 'W4' OR drrt = 'W5') and NVL ( trim(DRKY), '000') = '801'; 这是我
SELECT
DRKY AS REASON_CODE,
DRDL01 AS DESCRIPTION
FROM shema.SourceTable
WHERE drsy = '00' AND DRDL01 IS NOT NULL AND (drrt = 'W4' OR drrt = 'W5') and NVL ( trim(DRKY), '000') = '801';
这是我的Linq查询,它不返回值
var RJDEReasonCode = from a in JTable.SourceTable
where
a.DRSY.Equals( "00") &&
a.DRDL01 != null &&
(a.DRRT.Equals( "W4") ||
a.DRRT.Equals( "W5")) &&
a.DRKY.Equals( "801") // here is where the problem is tried many things but nothing has worked so far.
select new
{
CATEGORY_CODE = a.DRRT,
REASON_CODE = a.DRKY,
DESCRIPTION = a.DRDL01
};
看起来您只需要修剪一下DRKY:
a.DRKY.Trim() == "801"
或者可能:
a.DRKY != null && a.DRKY.Trim() == "801"
(就我个人而言,我发现字符串比较的
==
比使用Equals
更简单,但是YMMV。)看起来您只需要修剪DRKY
:
a.DRKY.Trim() == "801"
或者可能:
a.DRKY != null && a.DRKY.Trim() == "801"
(我个人认为字符串比较的
==
比使用Equals
更简单,但是YMMV。)+1我也喜欢使用==而不是Equals:p,而且我认为这是问题的原因。我有另一个查询返回一组代码,我想将它们插入801,我该怎么做?这是我的第一个查询,它返回一个结果,该结果已在DbEntity.MobileAssetDowntimeReasonCodes中从a绑定到gridview var RCode=,其中a.MobileAssetCategoryId.Equals(reasonCode)选择新的{a.JdeReasonCode};ReasonCode.DataSource=RCode.ToList();ReasonCode.DataBind();需要使用RCode值而不是801@user2315840当前位置不太清楚你的意思,但我建议你问一个新的(适当详细的)问题。你可能想用连接来代替…@john我问了另一个问题你能看看我做错了什么吗+1我也喜欢用==而不是Equals:P,而且我认为这是问题的原因我有另一个查询返回一组代码,我想把它们插入801,我怎么做?这是我的第一个查询,它返回一个结果,该结果已在DbEntity.MobileAssetDowntimeReasonCodes中从a绑定到gridview var RCode=,其中a.MobileAssetCategoryId.Equals(reasonCode)选择新的{a.JdeReasonCode};ReasonCode.DataSource=RCode.ToList();ReasonCode.DataBind();需要使用RCode值而不是801@user2315840当前位置不太清楚你的意思,但我建议你问一个新的(适当详细的)问题。你可能想用连接来代替…@约翰,我问了另一个问题,你能看看它,看看我做错了什么吗