SetDataSource在VS2005中不起作用 [英] SetDataSource doesn't work in VS2005

查看:67
本文介绍了SetDataSource在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆