在VS2010中新建一個(gè)“Windows 窗體應(yīng)用程序”項(xiàng)目,在該項(xiàng)目中添加一個(gè)水晶報(bào)表“CrystalReport1.rpt”,然后在項(xiàng)目上點(diǎn)擊鼠標(biāo)右鍵屬性,將“目標(biāo)框架”改為“.Net Framework 4”
打開app.config文件,在“startup”節(jié)點(diǎn)一個(gè)“useLegacyV2RuntimeActivationPolicy="true"”屬性
復(fù)制代碼代碼如下:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
在Form1窗體中,從工具箱拖出一個(gè)Crystal Report Viewer控件,雙擊Form窗體,是雙擊Form窗體,不是Crystal Report Viewer,在后臺(tái)的Form_Load事件中寫入如下代碼:
復(fù)制代碼代碼如下:
private void Form1_Load(object sender, EventArgs e)
{
string connStr = "Data Source=.\\SqlExpress;Initial Catalog=dbTest;User ID=sa;Password=test";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
try
{
string sql = "SELECT * FROM Customer where email!='[email protected]'";
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "tmpTable");
string reportPath = System.Windows.Forms.Application.StartupPath + @"\CrystalReport1.rpt";
ReportDocument rd = new ReportDocument();
rd.Load(reportPath);
rd.SetDataSource(ds.Tables[0].DefaultView);
this.crystalReportViewer1.ReportSource = rd;
}
catch (Exception ex)
{
throw new Exception(ex.Message.ToString());
}
finally
{
conn.Close();
}
}
這樣就OK了