我在NET2003的WINFORM环境下做的水晶报表,用DATASET填充数据一共用了四张表,跟踪数据都得到了,但是运行程序时候加载报表会弹出一个登陆数据库的验证界面,不知道是什么原因,请问有没有高手可以帮我解释下.private void createWL_return()
{
try
{
CrystalReport.cvrKPItrafficSum cvr = new LongLiQi.CrystalReport.cvrKPItrafficSum();
Datasets.dsTrafficReturnLittle Qds=this.createWl_ReturnList(); this.Get_SqlDataAdapter().Fill(Qds,"T_Company_Enrol");
cvr.SetDataSource(Qds);
CRVReport.ReportSource=cvr;
}
catch(System.Exception ex)
{
Console.Write(ex.ToString());
}
}
private Datasets.dsTrafficReturnLittle createWl_ReturnList()
{
string sql ="select distinct(trafficCompany) from T_Traffic_Company_AttemperPlan ";
SqlConnection con = new SqlConnection(path);
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand(sql,con);
SqlDataAdapter dtp = new SqlDataAdapter(cmd);
dtp.Fill(ds);
int col = ds.Tables[0].Rows.Count;
Datasets.dsTrafficReturnLittle Qds = new LongLiQi.Datasets.dsTrafficReturnLittle();
SqlConnection Qcnn = new SqlConnection(path);
DataRow row =Qds.Tables["tmp_time"].NewRow();
row[0]=fristTime;
row[1]=lastTime;
for(int i=0; i<col;i++)
{
DataRow dw = Qds.Tables["D_TrafficReturn"].NewRow();
string trafficCompany = ds.Tables[0].Rows[i][0].ToString();//得到运输公司名
string sqlsumP ="select count(distinct trafficId) from T_Traffic_Company_AttemperPlan where  "+
"plantime between '"+fristTime+"' and '"+lastTime+"' and trafficCompany='"+trafficCompany+"'";
DataSet dssumP = new DataSet();
SqlCommand cmdSumP= new SqlCommand(sqlsumP,con);
SqlDataAdapter dtpSumP = new SqlDataAdapter(cmdSumP);
dtpSumP.Fill(dssumP);
string sumP = dssumP.Tables[0].Rows[0][0].ToString();//得到总票数
string sqlnoP="select count(distinct trafficId) from T_Traffic_Company_AttemperPlan where "+
" plantime between '"+fristTime+"' and '"+lastTime+"' and  workState = '调度计划' and trafficCompany='"+trafficCompany+"'";
DataSet dsnoP = new DataSet();
SqlCommand cmdnoP=new SqlCommand(sqlnoP,con);
SqlDataAdapter dtpnoP = new SqlDataAdapter(cmdnoP);
dtpnoP.Fill(dsnoP);
string  noP = dsnoP .Tables[0].Rows[0][0].ToString();
if(sumP.Equals("")||noP.Equals(""))
{
sumP ="0";
noP  ="0";
}
int sumP1=int.Parse(sumP);
int returnP = int.Parse(sumP)-int.Parse(noP);
float returnB =float.Parse(returnP.ToString())/float.Parse(sumP.ToString())*100;
dw["trafficCompany"]=trafficCompany;
dw["sumP"]=sumP1;
dw["returnP"]=returnP;
dw["noP"]=noP;
dw["returnB"]=returnB;
Qds.Tables["D_TrafficReturn"].Rows.Add(dw);
}
Qds.Tables["tmp_time"].Rows.Add(row);
return Qds;
}这个是我的代码