One cool thing about Crystal Reports is that you can easily configure it to use your custom made strongly typed dataset. All you need to do is to create your dataset and use the Crystal Report "Database Expert" option to assign the source as ADO.NET DataSets. And finally you will need to populate the dataset in your C# code.
protected
void Btn_DisplayReport(
object sender,
EventArgs e)
{
UserDataSet user = new UserDataSet();
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM Users", myConnection);
ad.Fill(user,"Users");
ReportDocument report = new ReportDocument();
report.FileName = Server.MapPath("UserReport.rpt");
report.SetDataSource(user);
CrystalReportViewer1.ReportSource = report;
}