MVC中连接SAP HANA报错:database 'T' not connected
问题分析与解决
第一个报错:general error: database 'T' not connected
这个报错的核心原因是连接字符串格式不符合SAP HANA .NET驱动的解析规则,具体问题:
- .NET环境下的
HanaConnection连接字符串不需要给Server、UserName、Password、Database等值添加单引号,你当前的写法(如Server='192.168.0.13:30015')会导致驱动解析错误,无法正确识别租户数据库T。 - 标准参数名应为
Database而非DATABASENAME,虽然部分驱动兼容大写写法,但使用标准参数名更稳妥。
第二个报错:Connection failed (RTE:[89006] System call 'connect' failed, rc=10061:No connection could be made because the target machine actively refused it.
这个报错是端口使用错误导致的:
- 30015是HANA数据库的SQL连接端口(对应实例号00的默认SQL端口),而30013是HANA的HTTP服务端口,
.NET的HanaConnection基于SQL协议工作,用HTTP端口连接自然会被目标机器拒绝,因为该端口没有监听SQL服务。
为何PHP能正常连接
PHP的HANA驱动对连接字符串格式兼容性更强,允许给参数值添加单引号,所以你当前的字符串在PHP中可以正常解析,但.NET驱动的解析规则更严格,需要遵循标准格式。
修正后的连接代码
using (HanaConnection sqlConnection = new HanaConnection("Server=192.168.0.13:30015; UserName=S; Password=E; Database=T")) { sqlConnection.Open(); }
内容的提问来源于stack exchange,提问作者wittream
相关产品推荐
相关产品推荐

