SetDataSource在VS2005中不起作用 [英] SetDataSource doesn't work in VS2005
问题描述
你好。
我使用VS2005 Beta2和数据集作为我(子)报告的来源。 我使用(Sybase)OLEDB连接创建报告。运行时报告使用Sybase Dot Net驱动程序。
我有一台配有Beta版本的机器和一台带有RTM的机器版。 Beta版运行良好,RTM版本没有;数据集未加载到报表中。该报告使用设计时参数或询问参数值。
当我使用SetParameterValue作为我的(子)报告没关系,但我想使用数据集作为源(使用Sybase驱动程序)。现在,每个报告都使用单独的数据库连接。无法使用连接池
Goos van Beek
< edit>
<edit>
我确实尝试了所有可能的方法(DataSet,IDataReader) 使用SetDataSource但似乎没有任何工作。我是唯一一个有这个问题的人吗?有人可以证实它有效吗?或者它是CR错误......还是有更好的方法来创建报告而不是使用CR。
< / edit>
(我使用的代码......)
protected void CrystalReportViewer1_Load( object < FONT size = 2>发件人, EventArgs e)
protected void CrystalReportViewer1_Load(object sender, EventArgs e)
{
ReportDocument rpt;
ReportDocument rpt;
rpt = new ReportD ocument ();
rpt = new ReportDocument();
string reportPath = Server.MapPath( "CrystalReport.rpt" );
string reportPath = Server.MapPath("CrystalReport.rpt");
rpt。加载(reportPath);
rpt.Load(reportPath);
rpt.SetDataSource(LoadData( "dbo.WB_WBreakLocationsByReel" ));
rpt.SetDataSource(LoadData("dbo.WB_WBreakLocationsByReel"));
ReportLogon rl = new ReportLogon ( "ndcdb" ,rpt);
ReportLogon rl = new ReportLogon("ndcdb", rpt);
CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.ReportSource = rpt;
}
private DataSet LoadData( string sql)
private DataSet LoadData(string sql)
{
试试
try
{
DataSet dsReturn = new DataSet ();
DataSet dsReturn = new DataSet();
使用 ( AseConnection conn = new AseConnection (m_conn))
using (AseConnection conn = new AseConnection(m_conn))
{
使用 ( AseCommand cmd = new AseCommand (sql,conn))
using (AseCommand cmd = new AseCommand(sql, conn))
{
cmd.NamedParameters = false ;
cmd.NamedParameters = false;
cmd.CommandType = CommandTy pe .StoredProcedure;
cmd.CommandType = CommandType.StoredProcedure;
AseParameter p1 = new AseParameter ( "@ location" , < FONT color =#008080 size = 2> AseDbType .Char,1);
AseParameter p1 = new AseParameter("@location", AseDbType.Char, 1);
p1.Direction = ParameterDirection .Input;
p1.Direction = ParameterDirection.Input;
p1.Value = m_location;
p1.Value = m_location;
cmd.Parameters .Add(p1);
cmd.Parameters.Add(p1);
AseParameter p2 = new AseParameter ( < FONT color =#800000 size = 2>"@ year" , AseDbType 。整数,4);
AseParameter p2 = new AseParameter("@year", AseDbType.Integer, 4);
p2.Direction = Par ameterDirection .Input;
p2.Direction = ParameterDirection.Input;
p2.Value = m_year;
p2.Value = m_year;
cmd.Parameters.Add(p2) ;
cmd.Parameters.Add(p2);
AseParameter p3 = new AseParameter ( "@ breakType" , AseDbType .VarChar,3);
AseParameter p3 = new AseParameter("@breakType", AseDbType.VarChar, 3);
p3.Direction = ParameterDirection 。输入;
p3.Direction = ParameterDirection.Input;
p3.Value = m_type;
p3.Value = m_type;
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p3);
AseParameter p4 = new AseParameter ( "@ webBreakDelay" , AseDbType .Integer,4);
AseParameter p4 = new AseParameter("@webBreakDelay", AseDbType.Integer, 4);
p4.Direction = ParameterDirection 。输入;
p4.Direction = ParameterDirection.Input;
p4.Value = m_webBreakDelay;
p4.Value = m_webBreakDelay;
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p4);
conn.Open();
conn.Open();
使用 ( AseDataReader < FONT size = 2> dr = cmd.ExecuteReader())
using (AseDataReader dr = cmd.ExecuteReader())
{
dsReturn.Load(
dsReturn.Load(
dr,
LoadOption .OverwriteChanges,
LoadOption.OverwriteChanges,
new string [] {sql});
new string[] { sql });
}
conn.Close();
conn.Close();
} //使用(AseCommand命令=新的AseCommand(sql,连接))
}//using (AseCommand command = new AseCommand(sql, connection))
} //使用(AseConnection连接=新的AseConnection("
}//using(AseConnection connection = new AseConnection("
返回 dsReturn;
return dsReturn;
}
catch
catch
{
返回 null ;
return null;
}
}
推荐答案
由于这篇文章太旧了,我现在只是添加一个回复,因此可以将其标记为已回答。更新应解决问题。
Since this post is so old now I'm just adding a reply so it can be marked as answered. Updates should resolve the issues.
唐
这篇关于SetDataSource在VS2005中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!