我在c#web应用程序中使用水晶报告。存在一个问题,即水晶报告从For循环加载最后一条记录。
我将for循环中的产品代码存储为代码。根据该单个或多个代码,水晶报告显示信息。该产品。
我用....
for (int i = 0; i < code.Length; i++)
{
string str = "select crbal*-1 as crbal, glname, contprsn, refby, glphone1, glcity, glphone2, email, crlimit, restorddueamt from db1.dbo.glmast WHERE drgroup='A3402' and crbal<>0 and glcode="+code[i]+ "";
SqlDataAdapter ad = new SqlDataAdapter(str, con2);
DataSet ds = new DataSet();
ad.Fill(ds);
path = Server.MapPath("ERP_REPORT_MAIN.rpt");
cr = new ReportDocument();
cr.Load(path);
cr.SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource = cr;
}
如果,for循环中有两个代码,它只显示最后一条记录。请帮助我。
谢谢和问候...... Mitesh
答案 0 :(得分:0)
我会修改代码,并进行一些轻微的效率提升:
string query = "select crbal*-1 as crbal, glname, contprsn, refby, glphone1, glcity, glphone2, email, crlimit, restorddueamt from db1.dbo.glmast WHERE drgroup='A3402' and crbal<>0 and glcode in (
for (int i = 0; i < code.Length; i++)
{
query += code[i];
if (i != code.Length -1)
query += ","
else
query += ")";
}
SqlDataAdapter ad = new SqlDataAdapter(str, con2);
DataSet ds = new DataSet();
ad.Fill(ds);
path = Server.MapPath("ERP_REPORT_MAIN.rpt");
cr = new ReportDocument();
cr.Load(path);
cr.SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource = cr;