i have a database table having more then 300 records i want to print it using PrintDocument/PrintPreview but the problem is only one page is showing in printPreview the remaining records are missing my Code is below please help me.
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
int valueYPos=80;
int valueXPos=20
string classId=1;
con.SqlQuery("select [RollNo],[Name] from [dbo].[StudentRegistration] where [ClassId]='"
+ classId + "'");
con.ExQuery();
foreach (DataRow item in con.ExQuery().Rows)
{
e.Graphics.DrawString("RollNo" +item[0].ToString(), new Font("Arial", 20,
FontStyle.Bold), Brushes.Black, new Point(valueXPos, valueYPos));
e.Graphics.DrawString("RollNo" +item[1].ToString(), new Font("Arial", 20,
FontStyle.Bold), Brushes.Black, new Point(valueXPos+20, valueYPos));
valueYPos +=20;
}
}
private void button1_Click(object sender, EventArgs e)
{
PrintPreviewDialog pPD = new PrintPreviewDialog();
pPD.Document = printDocument1;
pPD.ShowDialog();
}
For print preview dialog see this answer Showing Print Preview in C#
First of all you can not access data like that because it will try to access data when it try to print each page.
Hope resolved your problem