我的水晶报表,在vs2010里面调试的时候,是正常的,能显示数据,但是直接通过页面浏览就报:Error :Failed to open the connection. Failed to open the connection. TestSaleInvoicBarbara {700C3DB7-252B-403A-A459-0A8DA458904F}.rpt
服务器是server2003的,数据库是sql2005的,配置odbc的时候,如果没有配置“使用者来源资料名称”这个应该是“用户DSN",则,在vs2010水晶报表页面上在与odbc连接的时候,找不到odbc的servername.
CrystalDecisions.Shared.ConnectionInfo conn = new CrystalDecisions.Shared.ConnectionInfo();
conn.ServerName = "pc";
conn.DatabaseName = "db";
conn.UserID = "sa";
conn.Password = "123";
ReportDoc.Database.Tables[0].LogOnInfo.ConnectionInfo = conn;
ReportDoc.Database.Tables[0].ApplyLogOnInfo(ReportDoc.Database.Tables[0].LogOnInfo);
这个是直接用户名密码的 你可以看看
我是通过直接连接odbc,本来写了这个方法但是没有调用,所以不要这些代码了。在服务器上不设置“用户odbc”在program里面的database fields 下的数据库专家,创建新的连接时,
找不到odbc的servername?
由于本地系统是xp的,而且,vs2010的水晶报表,是与odbc中的系统dsn一起来实现报表的数据读取。而我把项目整个的copy到server2008服务器上,由于系统默认的odbc,系统dsn是32bit的,所以每次在server2008上将项目用vs2010打开,调到水晶报表上去,连接odbc的时候,(在odbc中只配置了系统dsn,水晶报表也只需要用这个系统dsn就ok了。)总找不到系统dsn。这个时候,需要找到我的电脑:“C:\Windows\SysWOW64”打开该文件下的odbc,并配置就ok了。
这应该算是sap的一个bug吧。