为什么水晶报表中,用ADO与oracle数据库连接后,运行起来总是出现数据库登陆的异常错误?
同上 问题点数:20、回复次数:1Top
1 楼cnming(cnming)回复于 2005-05-24 14:21:45 得分 20
如果你指定报表数据源为一个现存的数据库的话,你的水晶报表需要登陆,参考这个帖子
http://community.csdn.net/Expert/topic/4029/4029786.xml?temp=.2658045
你可以这样处理
DS = null;
DS = new System.Data.DataSet();
m_strSQL = "";
m_strSQL = m_strSQL + "SELECT CustomerID as CustomerID, CustomerName, Sex, CustomerSpell, Trademark, BalanceIntegral, CardNo, SortName, Address, Phone, IdentityID, Email AS Email, CardID as CardID";
m_strSQL = m_strSQL + " FROM T_Customer";
m_strSQL = m_strSQL + " WHERE (((IsUse)>=0))";
if(this.txtCustomerName.Text.Trim().Length > 0)
{
m_strSQL = m_strSQL + " And CustomerName like '%" + this.txtCustomerName.Text.Trim() + "%'";
}
if(this.txtTrademark.Text.Trim().Length > 0)
{
m_strSQL = m_strSQL + " And Trademark like '%" + this.txtTrademark.Text.Trim() + "%'";
}
if(this.txtCardNumber.Text.Trim().Length > 0)
{
m_strSQL = m_strSQL + " And CardNo like '%" + this.txtCardNumber.Text.Trim() + "%'";
}
m_strSQL = m_strSQL + " ORDER BY CustomerSpell";
ClassGlobe.conn.Open();
System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(m_strSQL, ClassGlobe.conn);
adapter.Fill(DS, "T_Customer");
ClassGlobe.conn.Close();
//DS.WriteXml(@"d:\AutoClubCustomer.xml", System.Data.XmlWriteMode.WriteSchema);
rpt = null;
rpt = new rptQueryCustomer();
rpt.SetDataSource(DS);
this.crvQueryCustomer.ReportSource = rpt;
首先,把//DS.WriteXml(@"d:\AutoClubCustomer.xml", System.Data.XmlWriteMode.WriteSchema);
的注释去掉。
同时把
rpt = null;
rpt = new rptQueryCustomer();
rpt.SetDataSource(DS);
this.crvQueryCustomer.ReportSource = rpt;
注释起来,
然后运行一遍这些代码,你就会获得一个XML文件“d:\AutoClubCustomer.xml”
现在就可以新建一个空白报表了。假如取名为“rptQueryCustomer”
然后,添加/删除数据库,然后选择“更多数据源”--〉ADO.NET(XML),然后选择d:\AutoClubCustomer.xml,然后就有字段了,直接在报表上排列即可。
Top




