Sometimes a little tip could save you much time when browsing website:
//dataset create
DataSet thisDataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(thisDataSet, "Main");
ReportDocument rptSales = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
rptSales.FileName = Server.MapPath("CrystalReport.rpt");
rptSales.SetDatabaseLogon("user", "password");
rptSales.SetDataSource(thisDataSet.Tables["Main"]);
//default printer name
PrintDocument prtdoc = new PrintDocument();
string strDefaultPrinter = prtdoc.PrinterSettings.PrinterName;
// then print, this is the important thing here
rptSales.PrintOptions.PrinterName = strDefaultPrinter;
rptSales.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize;
rptSales.PrintOptions.PaperSource = CrystalDecisions.Shared.PaperSource.Auto;
//parameters here depending on your situation.
rptSales.PrintToPrinter(1, true, 1, 9999);
thisConnection.Close();