我有这样的代码:OleDBCommand.ExecuteReader()错误访问2007
private void GenerarTicket(int prmFOLIO)
{
try
{
string Ticket = "Nombre de la tienda: UAMCAV\n" +
"RFC:XXXXXX\n" +
"------------------------------\n" +
"ARTICULO CANT PRECIO TOTAL\n" +
"------------------------------\n";
string varSQL = "SELECT Detalle_Ventas.folio, Detalle_Ventas.id_articulo, Detalle_Ventas.cantidad, Detalle_Ventas.p_unitario, Detalle_Ventas.iva*Detalle_Ventas.p_unitario AS iva, Detalle_Ventas.cantidad*Detalle_Ventas.p_unitario AS total, articulos.desc_producto, Ventas.user_login, LEFT(Ventas.fecha,10) AS fecha " + " FROM Ventas INNER JOIN (articulos INNER JOIN Detalle_Ventas ON articulos.id_articulo=Detalle_Ventas.id_articulo) ON Ventas.folio=Detalle_Ventas.folio WHERE Ventas.folio=" + prmFOLIO + "";
string DetalleTicket = "";
double varGranTotal = 0;
OleDbConnection cnnTicket =new OleDbConnection(Clases.clsMain.CnnStr);
cnnTicket.Open();
OleDbCommand cmdTicket =new OleDbCommand(varSQL, cnnTicket);
OleDbDataReader drTicket;
**drTicket = cmdTicket.ExecuteReader();**
while (drTicket.Read())
{
DetalleTicket +=
drTicket["desc_producto"].ToString() + " " +
drTicket["cantidad"].ToString() + " " +
String.Format("{0:C}",
drTicket["p_unitario"]) + " " +
String.Format("{0:C}",
drTicket["total"]) + "\n";
varGranTotal += (double)drTicket["total"];
}
DetalleTicket +=
"------------------------------\n" +
"TOTAL: " + String.Format("{0:C}",
varGranTotal);
Ticket += DetalleTicket;
mPrintDocument _mPrintDocument = new mPrintDocument(Ticket);
_mPrintDocument.PrintPreview();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我修改了大胆的部分很多次,因为总是有一个抛除怪我,像别名循环引用“desc_producto “,我使用由我创建的.dll生成购物券,但无法解决此异常问题!你可以帮我吗?顺便说一下,这是数据库中项目的名称。
“别名desc_producto中的循环引用”通常意味着您只需选择与字段名称不同的字段别名。如果您将'desc_producto'更改为'desc_producto2'和'drTicket [“desc_producto”]'drTicket [“desc_producto2”]',那么这会解决您的问题吗? – 2015-02-24 04:22:01
没有工作,它说没有具体的价值观一些建立参数! – SdwAlchmist 2015-02-24 04:30:38
好的!我做到了,但是,这段代码假设打印一张票,但预览中没有显示这些项目!你有想法吗?我要修改代码! – SdwAlchmist 2015-02-24 08:35:27