我正在从事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;
}
答案 0 :(得分:0)
您的Cmd.Execute
方法将返回一个记录集,但是在尝试读取数据之前您不会前进到第一条记录。
在读取值之前,您需要先rs.Read()
,然后rs.GetString(0)
(使用字段序号)才能获取值。
您可能还需要先检查rs.RecordCount
,以确保您的查询确实得到了结果。