我正在做一个C#销售点项目,该程序应该做的任务之一是有一个分期付款系统,其中客户可以订购我们目前没有的项目,但如果他们支付预付款,可以为他们获得它。
然后将定金放在数据库中的一个表上,其中包含商品的信息以及客户的信息,以便在商品准备就绪时与他们联系。
这个程序在一定程度上是有效的。在从MySQL表中获取数据时,我遇到了一个问题:数字项显示为零,而非数字项显示正确,我不知道为什么会发生这种情况。
有谁能帮帮我吗?谢谢!
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;
}发布于 2019-09-11 08:27:23
您的Cmd.Execute方法将返回一个记录集,但是在尝试读取数据之前,您并没有前进到第一条记录。
在读取值之前,您需要使用rs.Read(),然后可能需要使用rs.GetString(0) (带有字段序号)来获取值。
您可能还希望首先检查rs.RecordCount,以确保您的查询确实得到了结果。
https://stackoverflow.com/questions/57879079
复制相似问题