0

我在我的 SQL 查询中使用计算。如何在 C# 中使用该计算字段?当我尝试时,我得到一个索引超出范围异常。

我的查询是:

 Select OwnerCompanyLog.olog_name,inlt_companyid,inlt_childcompid,inlt_effectinterest,inlt_percent,inlt_sharetype,inlt_shares,inlt_childbase,inlt_effdate,
   ((inlt_percent * inlt_effectinterest)/100)eff
    from InterestLogTable 
    INNER JOIN OwnerCompanyLog 
    ON 
    InterestLogTable.inlt_childcompid = OwnerCompanyLog.olog_companyid 
    where inlt_companyid=5 
    Order By inlt_childcompid 

我想inlt_percent * inlt_effectinterest)/100在我的 C# 代码中使用:

 entity.ParentCompany = new List<Company>();
     while (parentCompanyReader.Read())
            {
    ParentCompany.Effect = parentCompanyReader["eff"].ToString();
    entity.ParentCompany.Add(ParentCompany);
            }

            parentCompanyReader.Close();

但是我得到了上面的错误。

4

2 回答 2

0

问题仅在于计算字段。上面的评论是绝对正确的。可能是您的 parentCompanyReader 类有错误。同时你可以尝试一些事情来确认错误。

将 eff 列移动到某个中间位置。可能是您的 parentCompanyReader 无法仅处理有限数量的列。

还有什么是“eff”,一列?还要在计算列之后放置一个 AS。

Select (inlt_percent * inlt_effectinterest)/100)eff AS EFF, OwnerCompanyLog.olog_name,inlt_companyid,inlt_childcompid,inlt_effectinterest,inlt_percent,inlt_sharetype,inlt_shares,inlt_childbase,inlt_effdate

注意:这些只是黑暗中的箭头!

于 2012-05-31T04:40:29.240 回答
0

尝试将它与 index 而不是 column name 一起使用。

     while (parentCompanyReader.Read())
        {
        ParentCompany.Effect = Convert.ToInt32(parentCompanyReader[5]);
        entity.ParentCompany.Add(ParentCompany);
        }

        parentCompanyReader.Close();

我假设计算的字段返回一个整数

并确保你使用 using 语句,这样如果出现错误,连接将被关闭并处理

于 2012-05-31T04:49:37.883 回答