程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 解決VS2005水晶報表多表關聯去除數據庫登錄框

解決VS2005水晶報表多表關聯去除數據庫登錄框

編輯:.NET實例教程

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);
}
這一段,重新驗證數據表,這樣一來,也不會出現數據庫提示窗口,

比上面的方法要好,把代碼貼出來,大家做個參考,思路多多,,有更好的方法,千萬不要吝啬哦,,


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved