Crystal Report 資料庫修改後 報表不會重新讀取資料庫資料
-
2011年9月15日 上午 08:43
各位前輩大家好
小弟最近使用Crystal report 作為報表案子都要結了 結果在最後使用者測試時發現
當系統中使用者修改了部份資料並儲存到資料庫中
但是再開報表卻發現 報表上資料不會更新...
可是如果以預覽模式是有更新的 只是在系統上就會還是舊的
不知道到底是程式裡哪裡寫錯了呢?導致他還是抓到舊的資料
附上程式碼 感謝各位
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Report.aspx.cs" Inherits="App_WebForm_Web_Report_Report_CReport_Report" %> <%@ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <CR:CrystalReportViewer ID="CrystalReportViewer1" Runat="server" AutoDataBind="True" Height="50px" Width="350px" HasToggleGroupTreeButton="False" /> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Microsoft.VisualBasic; using System.Collections; using System.Data; using System.Diagnostics; using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Web; using System.Threading; public partial class App_WebForm_Web_Report_Report_CReport_Report : System.Web.UI.Page { private string paramNames = ""; private string paramValues = ""; private string rptName = ""; protected void Page_Load(object sender, EventArgs e) { string CostNum = Page.Request["CostNum"]; if (!Page.IsPostBack) { rptName = Page.Request["rpt"]; paramNames = "CostNum"; //,SinkBk,GPU,Memory,Packing,other" paramValues = CostNum; //& "," & Page.Request("SinkBk") & "," & Page.Request("GPU") & "," & Page.Request("Memory") & "," & Page.Request("Packing") & "," & Page.Request("other") PrintRpt("127.0.0.1", "test", "test", "test"); } } private void PrintRpt(string SvrName, string Uid, string Pwd, string DBName) { ConnectionInfo myConnectionInfo = new ConnectionInfo(); TableLogOnInfos myTableLogOnInfos = new TableLogOnInfos(); CrystalReportViewer1.ReportSource = null; myConnectionInfo.DatabaseName = DBName; myConnectionInfo.UserID = Uid; myConnectionInfo.Password = Pwd; myConnectionInfo.ServerName = SvrName; string[] pname = null; string[] pvalue = null; pname = paramNames.Split(','); pvalue = paramValues.Split(','); ParameterField PF = new ParameterField(); ParameterDiscreteValue PFV = new ParameterDiscreteValue(); ParameterFields PFS = new ParameterFields(); if (pname.Length > 0) { //// 設定參數 for (int i = 0; i <= pname.Length - 1; i++) { PF = new ParameterField(); PF.ParameterFieldName = pname[i]; PFV = new ParameterDiscreteValue(); PFV.Value = pvalue[i]; PF.CurrentValues.Add(PFV); PFS.Add(PF); } } CrystalReportViewer1.ParameterFieldInfo = PFS; CrystalReportViewer1.DisplayGroupTree = false; CrystalReportViewer1.ReportSource = Server.MapPath(rptName + ".rpt"); myTableLogOnInfos = CrystalReportViewer1.LogOnInfo; foreach (TableLogOnInfo myTableLogOnInfo in myTableLogOnInfos) { myTableLogOnInfo.ConnectionInfo = myConnectionInfo; } //CrystalReportViewer1.RefreshReport(); } protected void Page_Unload(object sender, System.EventArgs e) { CrystalReportViewer1.Dispose(); } }

