首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些RS字段保留为零,而其他字段则不保留(ADODB)

问某些RS字段保留为零,而其他字段则不保留(ADODB)
EN

Stack Overflow用户
提问于 2019-09-11 06:48:34
回答 1查看 35关注 0票数 0

我正在做一个C#销售点项目,该程序应该做的任务之一是有一个分期付款系统,其中客户可以订购我们目前没有的项目,但如果他们支付预付款,可以为他们获得它。

然后将定金放在数据库中的一个表上,其中包含商品的信息以及客户的信息,以便在商品准备就绪时与他们联系。

这个程序在一定程度上是有效的。在从MySQL表中获取数据时,我遇到了一个问题:数字项显示为零,而非数字项显示正确,我不知道为什么会发生这种情况。

有谁能帮帮我吗?谢谢!

代码语言:javascript
复制
public string[] detalleAnticipoPorId(int idAnticipo)
    {
        string[] detalleAnticipo = new string[7];
        deleteParameters();
        object objRecAff = Type.Missing;
        Cmd.CommandText = "SELECT * FROM ref_anticipos WHERE ant_id = ? ";
        Cmd.CommandType = ADODB.CommandTypeEnum.adCmdText;
        object objParameters = Type.Missing;
        ADODB.Parameter numParam = Cmd.CreateParameter("NoPedido", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamInput, 50, idAnticipo);
        Cmd.Parameters.Append(numParam);
        rs = Cmd.Execute(out objRecAff, ref objParameters, 0);
        detalleAnticipo[0] = rs.Fields["ant_id"].Value.ToString(); //Gives out zero rather than number as string
        detalleAnticipo[1] = rs.Fields["ant_id_cliente"].Value.ToString(); //same here
        detalleAnticipo[2] = rs.Fields["ant_fecha_creada"].Value.ToString();
        detalleAnticipo[3] = rs.Fields["ant_monto_pagado"].Value.ToString();
        detalleAnticipo[4] = rs.Fields["ant_estatus"].Value.ToString();
        detalleAnticipo[5] = rs.Fields["ant_id_pedido"].Value.ToString(); //and here
        detalleAnticipo[6] = rs.Fields["ant_nota"].Value.ToString();

        return detalleAnticipo;
    }
EN

回答 1

Stack Overflow用户

发布于 2019-09-11 08:27:23

您的Cmd.Execute方法将返回一个记录集,但是在尝试读取数据之前,您并没有前进到第一条记录。

在读取值之前,您需要使用rs.Read(),然后可能需要使用rs.GetString(0) (带有字段序号)来获取值。

您可能还希望首先检查rs.RecordCount,以确保您的查询确实得到了结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57879079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档