各位大哥MM,JJ弟弟我在用asp.net動態調數據源時顯示的水晶報表,
為何當有一個表時成功了,有兩個表以上的沒有數據顯示呢?如
string connStr = "DSN=Mfgsys80;UID=SYSPROGRESS;PWD=sysprogress;HOST=10.10.9.83;PORT=8050;DB=Mfgsys80";
OdbcConnection conn = new OdbcConnection(connStr);
conn.Open(); String strSql = "select dcduserid,name from pub.UserFile";
//OdbcCommand strCmd = new OdbcCommand(strSql, conn);
//strCmd.ExecuteNonQuery();
//OleDbDataReader objDataReader = objCommand.ExecuteNonQuery(); OdbcDataAdapter myda = new OdbcDataAdapter(strSql, conn);
DataSet myds = new DataSet();
myda.Fill(myds, "pub.Userfile");
if (myds.Tables["pub.userfile"].Rows.Count > 0)
{
ReportDocument oRpt = new ReportDocument();
oRpt.Load("e:\\natpakweb\\CrystalReport1.rpt");
oRpt.SetDataSource(myds.Tables["Pub.UserFile"]);
this.CrystalReportViewer1.ReportSource = oRpt;
this.CrystalReportViewer1.DataBind();
}
conn.Close();
}這個是報表可以成功顯示了但下面的就不行了,在網頁中是空的,但在預覽報表時可以有數據顯示 string connStr = "DSN=Mfgsys80;UID=SYSPROGRESS;PWD=sysprogress;HOST=10.10.8.21;PORT=8050;DB=Mfgsys80";
OdbcConnection conn = new OdbcConnection(connStr);
conn.Open(); DataSet myds = new DataSet(); String strSql = "select * from pub.PartTran where TranType='INS-DMR'";
OdbcDataAdapter myda1 = new OdbcDataAdapter(strSql, conn);
myda1.Fill(myds, "PartTran"); strSql = "select * from pub.RcvHead where ReceiptDate='2006-04-06'";
OdbcDataAdapter myda2 = new OdbcDataAdapter(strSql, conn);
myda2.Fill(myds, "RcvHead"); strSql = "select * from pub.Vendor where VendorID='SC0198'";
OdbcDataAdapter myda3 = new OdbcDataAdapter(strSql, conn);
myda3.Fill(myds, "Vendor"); TableLogOnInfo logOnInfo = new TableLogOnInfo();
ReportDocument oRpt = new ReportDocument();
oRpt.Load("e:\\natpakweb\\accept01.rpt");
oRpt.SetDataSource(myds);
int i = 0;
for (i = 0; i == oRpt.Database.Tables.Count - 1; i++)
{
logOnInfo.ConnectionInfo.UserID = "sysprogress";
logOnInfo.ConnectionInfo.Password = "sysprogress";
oRpt.Database.Tables[i].ApplyLogOnInfo(logOnInfo);
}
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue(); paramField.ParameterFieldName = "MyValue";
discreteVal.Value = "SC0198";
paramField.CurrentValues.Add(discreteVal);
paramFields.Add(paramField); paramField = new ParameterField();
paramField.ParameterFieldName = "MyPackslip";
discreteVal.Value = "0044";
paramField.CurrentValues.Add(discreteVal);
paramFields.Add(paramField);
this.CrystalReportViewer1.ParameterFieldInfo = paramFields;
this.CrystalReportViewer1.ReportSource = oRpt;
this.CrystalReportViewer1.DataBind();
conn.Close();
為何當有一個表時成功了,有兩個表以上的沒有數據顯示呢?如
string connStr = "DSN=Mfgsys80;UID=SYSPROGRESS;PWD=sysprogress;HOST=10.10.9.83;PORT=8050;DB=Mfgsys80";
OdbcConnection conn = new OdbcConnection(connStr);
conn.Open(); String strSql = "select dcduserid,name from pub.UserFile";
//OdbcCommand strCmd = new OdbcCommand(strSql, conn);
//strCmd.ExecuteNonQuery();
//OleDbDataReader objDataReader = objCommand.ExecuteNonQuery(); OdbcDataAdapter myda = new OdbcDataAdapter(strSql, conn);
DataSet myds = new DataSet();
myda.Fill(myds, "pub.Userfile");
if (myds.Tables["pub.userfile"].Rows.Count > 0)
{
ReportDocument oRpt = new ReportDocument();
oRpt.Load("e:\\natpakweb\\CrystalReport1.rpt");
oRpt.SetDataSource(myds.Tables["Pub.UserFile"]);
this.CrystalReportViewer1.ReportSource = oRpt;
this.CrystalReportViewer1.DataBind();
}
conn.Close();
}這個是報表可以成功顯示了但下面的就不行了,在網頁中是空的,但在預覽報表時可以有數據顯示 string connStr = "DSN=Mfgsys80;UID=SYSPROGRESS;PWD=sysprogress;HOST=10.10.8.21;PORT=8050;DB=Mfgsys80";
OdbcConnection conn = new OdbcConnection(connStr);
conn.Open(); DataSet myds = new DataSet(); String strSql = "select * from pub.PartTran where TranType='INS-DMR'";
OdbcDataAdapter myda1 = new OdbcDataAdapter(strSql, conn);
myda1.Fill(myds, "PartTran"); strSql = "select * from pub.RcvHead where ReceiptDate='2006-04-06'";
OdbcDataAdapter myda2 = new OdbcDataAdapter(strSql, conn);
myda2.Fill(myds, "RcvHead"); strSql = "select * from pub.Vendor where VendorID='SC0198'";
OdbcDataAdapter myda3 = new OdbcDataAdapter(strSql, conn);
myda3.Fill(myds, "Vendor"); TableLogOnInfo logOnInfo = new TableLogOnInfo();
ReportDocument oRpt = new ReportDocument();
oRpt.Load("e:\\natpakweb\\accept01.rpt");
oRpt.SetDataSource(myds);
int i = 0;
for (i = 0; i == oRpt.Database.Tables.Count - 1; i++)
{
logOnInfo.ConnectionInfo.UserID = "sysprogress";
logOnInfo.ConnectionInfo.Password = "sysprogress";
oRpt.Database.Tables[i].ApplyLogOnInfo(logOnInfo);
}
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue(); paramField.ParameterFieldName = "MyValue";
discreteVal.Value = "SC0198";
paramField.CurrentValues.Add(discreteVal);
paramFields.Add(paramField); paramField = new ParameterField();
paramField.ParameterFieldName = "MyPackslip";
discreteVal.Value = "0044";
paramField.CurrentValues.Add(discreteVal);
paramFields.Add(paramField);
this.CrystalReportViewer1.ParameterFieldInfo = paramFields;
this.CrystalReportViewer1.ReportSource = oRpt;
this.CrystalReportViewer1.DataBind();
conn.Close();
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货