在ASP.NET下使用水晶報表一(零點起步)
2024-07-10 13:03:44
供稿:網友
摘要如下:
1。第一步是添加新項crystalreport1
2。在crystalreport1.rpt面頁右鍵選擇:”數據庫”à”添加/刪除數據庫”出現下面對話框:
然后點開ole db(ado)的加號,將彈出選擇數據庫的對話框
其中”項目數據”里面的”當前連接”顯示的就是ole db(ado)的連接,這樣就可以將表添加到右邊的”選定的表”中了(切記:不要既從”ole db” 中選表或命令又從”當前連接”中選,如果你用了數據集,也是一樣的道理,否則全提示出”登陸失敗”的錯誤!)
3。字段資料管理器里面”數據庫字段”里把字段直接拖到crystalreport.rpt里面了.布置好布局.
4。回到webform1.aspx頁面,選擇控件crystalreportviewer將其放到頁面上。
5。代碼
using crystaldecisions.shared;
using crystaldecisions.crystalreports.engine;
在webform1.aspx.cs的form_load里面添加代碼:
tablelogoninfo logoninfo = new tablelogoninfo();
reportdocument rpdmy0= new reportdocument();
logoninfo.connectioninfo.servername = "nnn";
logoninfo.connectioninfo.password="dong";
logoninfo.connectioninfo.databasename="lab";
logoninfo.connectioninfo.userid = "sa";
string path = server.mappath("crystalreport2.rpt");
rpdmy0.load(path);
rpdmy0.database.tables[0].applylogoninfo(logoninfo);
crystalreportviewer1.reportsource = rpdmy0;
其中:
tablelogoninfo類是: 提供屬性,以便檢索和設置表連接選項.它有一個連接的屬性connectioninfo,用來設置與數據庫的連接.如上面的servername等.生成一個報表文檔對象將前面我們做好的那個crystalreport1.rpt賦給它.在這里要注意的是database屬性!然后把報表對象做為crystalreportviewer1的數據源.
或者,獲得數據庫的方法改為直接從數據庫獲得dataset
using system.data.sqlclient;
using system.collections.specialized;
string strconn=system.configuration.configurationsettings.appsettings["db"].tostring();
using (sqlconnection conn = new sqlconnection(strconn))
{
sqldataadapter da = new sqldataadapter(strsql,conn);//strsql是sql語言"select * from dbo.table1"
dataset ds=new dataset();
da.fill( ds);
crystalreport1 cr1 = new crystalreport1();
cr1.setdatasource( ds);
crystalreportviewer1.reportsource = cr1;
}
using crystaldecisions.shared;
using crystaldecisions.crystalreports.engine;
在webform1.aspx.cs的form_load里面添加代碼:
tablelogoninfo logoninfo = new tablelogoninfo();
reportdocument rpdmy0= new reportdocument();
logoninfo.connectioninfo.servername = "nnn";
logoninfo.connectioninfo.password="dong";
logoninfo.connectioninfo.databasename="lab";
logoninfo.connectioninfo.userid = "sa";
string path = server.mappath("crystalreport2.rpt");
rpdmy0.load(path);
rpdmy0.database.tables[0].applylogoninfo(logoninfo);
crystalreportviewer1.reportsource = rpdmy0;
其中:
tablelogoninfo類是: 提供屬性,以便檢索和設置表連接選項.它有一個連接的屬性connectioninfo,用來設置與數據庫的連接.如上面的servername等.生成一個報表文檔對象將前面我們做好的那個crystalreport1.rpt賦給它.在這里要注意的是database屬性!然后把報表對象做為crystalreportviewer1的數據源.
或者,獲得數據庫的方法改為直接從數據庫獲得dataset
using system.data.sqlclient;
using system.collections.specialized;
string strconn=system.configuration.configurationsettings.appsettings["db"].tostring();
using (sqlconnection conn = new sqlconnection(strconn))
{
sqldataadapter da = new sqldataadapter(strsql,conn);//strsql是sql語言"select * from dbo.table1"
dataset ds=new dataset();
da.fill( ds);
crystalreport1 cr1 = new crystalreport1();
cr1.setdatasource( ds);
crystalreportviewer1.reportsource = cr1;
}
using crystaldecisions.shared;
using crystaldecisions.crystalreports.engine;
在webform1.aspx.cs的form_load里面添加代碼:
tablelogoninfo logoninfo = new tablelogoninfo();
reportdocument rpdmy0= new reportdocument();
logoninfo.connectioninfo.servername = "nnn";
logoninfo.connectioninfo.password="dong";
logoninfo.connectioninfo.databasename="lab";
logoninfo.connectioninfo.userid = "sa";
string path = server.mappath("crystalreport2.rpt");
rpdmy0.load(path);
rpdmy0.database.tables[0].applylogoninfo(logoninfo);
crystalreportviewer1.reportsource = rpdmy0;
其中:
tablelogoninfo類是: 提供屬性,以便檢索和設置表連接選項.它有一個連接的屬性connectioninfo,用來設置與數據庫的連接.如上面的servername等.生成一個報表文檔對象將前面我們做好的那個crystalreport1.rpt賦給它.在這里要注意的是database屬性!然后把報表對象做為crystalreportviewer1的數據源.
或者,獲得數據庫的方法改為直接從數據庫獲得dataset
using system.data.sqlclient;
using system.collections.specialized;
string strconn=system.configuration.configurationsettings.appsettings["db"].tostring();
using (sqlconnection conn = new sqlconnection(strconn))
{
sqldataadapter da = new sqldataadapter(strsql,conn);//strsql是sql語言"select * from dbo.table1"
dataset ds=new dataset();
da.fill( ds);
crystalreport1 cr1 = new crystalreport1();
cr1.setdatasource( ds);
crystalreportviewer1.reportsource = cr1;
}