gpt4 book ai didi

c# - 工作中断查询之谜

转载 作者:可可西里 更新时间:2023-11-01 07:57:33 24 4
gpt4 key购买 nike

我正在查看我组织中的另一位开发人员在过去几年编写的一些旧代码。在尝试改进这段代码时,我发现它使用的查询有一个非常严重的问题。

  OdbcDataAdapter financialAidDocsQuery =
new OdbcDataAdapter(
@"SELECT a.RRRAREQ_TREQ_CODE,
b.RTVTREQ_SHORT_DESC,
a.RRRAREQ_TRST_DESC,
RRRAREQ_STAT_DATE,
RRRAREQ_EST_DATE,
a.RRRAREQ_SAT_IND,
a.RRRAREQ_SBGI_CODE,
b.RTVTREQ_PERK_MPN_FLAG,
b.RTVTREQ_PCKG_IND,
a.RRRAREQ_MEMO_IND,
a.RRRAREQ_TRK_LTR_IND,
a.RRRAREQ_DISB_IND,
a.RRRAREQ_FUND_CODE,
a.RRRAREQ_SYS_IND
FROM FAISMGR.RRRAREQ a, FAISMGR.RTVTREQ b
WHERE a.RRRAREQ_TREQ_CODE = b.RTVTREQ_CODE
and a.RRRAREQ_PIDM = :PIDM
AND a.RRRAREQ_AIDY_CODE = :AidYear ",
this.bannerOracle);
financialAidDocsQuery.SelectCommand.Parameters.Add(":PIDM", OdbcType.Int, 32).Value = this.pidm;
financialAidDocsQuery.SelectCommand.Parameters.Add(":AidYear", OdbcType.Int, 32).Value = this.aidYear;
DataTable financialAidDocsResults = new DataTable();
financialAidDocsQuery.Fill(financialAidDocsResults);
FADocsGridView.DataSource = financialAidDocsResults;
FADocsGridView.DataBind();

问题是 a.RRRAREQ_TRST_DESC 列不存在。在 Oracle SQL Developer 中运行它时,您会很快了解到这一事实。

奇怪的是?

此代码有效。

gridview绑定(bind)成功。 (它不会尝试绑定(bind)到该字段。)而且它已经投入生产多年。

那么,我的问题是……为什么?我从未见过糟糕的查询工作。我从未见过 Oracle 允许它或数据提供商绕过它。

有人知道这里发生了什么吗?

最佳答案

嗯……有几件事要检查:

  1. 这段代码真的能运行吗?提出这个建议似乎很愚蠢,但可能有一个更新的文件取代了这个文件。

  2. 您的代码是否抑制了异常? (任何会这样命名列的人都绝对能够消除那些讨厌的异常)

  3. 异常是否被第 3 方代码压制? (不太可能,但有时第 3 方代码更喜欢使用烦人的错误代码而不是异常)。

除了这些建议,我不确定。

编辑:

回顾第二点,如果您在 ASP.NET 中工作,请检查是否存在抑制异常的全局级异常处理程序。我在我工作的一个站点上遇到了这个问题,并在一天内发现了数十个异常。

关于c# - 工作中断查询之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4026142/

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