VS2005自帶水晶報表,新建CrystalReport1.rpt,然後跟著向導,選擇報表樣式,建立數據庫連接,選擇要顯示的段,然後完成就好了,然後綁定crystalReportVIEwer等等,這些就不細說了,
單個表報表沒什麼問題,但是開發時怎麼可能都是單個表吧,這概率也太小了,還是數據庫設計的不合理,
但多表關聯進來,顯示報表時會提示一個數據庫登錄,
解決問題很簡單,
選看下面的代碼 ,
DataSet ds=new DataSet();
SqlDataAdapter da1=new SqlDataAdapter("select * from table1",myconn);
SqlDataAdapter da2=new SqlDataAdapter("select * from table2",myconn);
da1.Fill(ds,"table1");
da2.Fill(ds,"table2");
CrystalReport1 rpt=new CrystalReport1();
rpt.SetDataSource(ds);
這樣,把在報表向導中的兩個表在程序中都添加進來,就不會出現數據庫登錄的窗口了,
但是這樣也許與你要查詢的結果不一樣,會出現數據交叉,
再看下面的,
TableLogOnInfo LInfo = new TableLogOnInfo();
LInfo.ConnectionInfo.ServerName = Application.StartupPath + "eastmap.esp";//
LInfo.ConnectionInfo.DatabaseName = "eastmap";
LInfo.ConnectionInfo.UserID = "";
LInfo.ConnectionInfo.PassWord = "user1";
for (int i = 0; i < cr.Database.Tables.Count; i++)
{
cr.Database.Tables[i].ApplyLogOnInfo(LInfo);
}
這一段,重新驗證數據表,這樣一來,也不會出現數據庫提示窗口,
比上面的方法要好,把代碼貼出來,大家做個參考,思路多多,,有更好的方法,千萬不要吝啬哦,,