我在C#中将水晶报告2008导出为pdf。
使用odbc将晶体报告连接到sql server 2008。
我想在不同的系统中部署它。如果db名称相同,它可以工作。
有没有办法动态提供数据库名称。我试过了
repDoc.SetDatabaseLogon(db_username,db_password,server,db);
并且失败,错误如下
Logon failed.
Details: [Database Vendor Code: 18456 ]Database Connector Error: ' [Database Vendor Code: 18456 ]'Failed to open the connection.
Details: [Database Vendor Code: 18456 ]Error in File denial_completed_letters {84E1BDEF-C60B-46E1-9080-77F699692270}.rpt:
Unable to connect: incorrect log on parameters.
Details: [Database Vendor Code: 18456 ]
答案 0 :(得分:3)
好消息/坏消息:坏消息是您无法使用SetDatabaseLogon更改数据库名称。好消息是你可以使用另一个函数ApplyLogOnInfo来做到这一点:
http://msdn.microsoft.com/en-us/library/cc411352(v=VS.90).aspx http://msdn.microsoft.com/en-us/library/ms226184(V = VS.90)的.aspx
只需从Table.LogOnInfo构造函数中获取登录信息,更改值,然后调用ApplyLogOnInfo。
答案 1 :(得分:1)
听起来您的数据库服务器没有配置NT和SQL身份验证。 或者您可以使用对目标数据库具有访问权限的sa用户。
答案 2 :(得分:1)
对于Windows 7,尝试通过以管理员身份运行安装应用程序,并将运行设置为与exe的管理员兼容性。要将exe作为管理员兼容性设置为exe,请右键单击exe,然后转到属性 - >兼容性,选中Run as administrator复选框,然后单击OK。