Печать C# идет бесконечно при печати значения базы данных на нескольких страницах
Я хочу напечатать значение базы данных на нескольких страницах (30 значений на одной странице). Используя while(dr.Read()) циклы идут бесконечно и одни и те же данные отображаются на каждой странице, Как это решить?
Что я уже пробовал:
private void test2_Load(object sender, EventArgs e) { itemperpage = 0; printPreviewDialog1.Document = printDocument1; ((ToolStripButton)((ToolStrip)printPreviewDialog1.Controls[1]).Items[0]).Enabled = false;//disable the direct print from printpreview.as when we click that Print button PrintPage event fires again. printDocument1.DefaultPageSettings.PaperSize = paperSize; printPreviewDialog1.ShowDialog(); }
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { int kx = 25; int ky = 50; con.Close(); con.Open(); String sql = "SELECT * from cash_bill"; cmd = new OleDbCommand(sql, con); dr1 = cmd.ExecuteReader(CommandBehavior.CloseConnection); while (dr1.Read()) { e.Graphics.DrawString(dr1[7].ToString(), printFont, Brushes.Black, kx + 75, ky + 5); if (itemperpage < 29) { itemperpage += 1; e.HasMorePages = false; ky = ky + 50; } else { itemperpage = 0; e.HasMorePages = true; return; } } con.Close(); }