weixin_45857118 2024-01-22 16:35 采纳率: 0%
浏览 9

HANA数据库连接失败

在C#进行HANA数据库连接时,连接字符串都是正确的,但是在运行时会报错
类型初始值设定项引发异常
链接字符串


    <connectionStrings>
        <add name="Hana" connectionString="Server=msappbhdb:33015;UserName=***;Password=***" providerName="Sap.Data.Hana" />
    </connectionStrings>

封装的数据库通用类

public class HanaHelper
    {

        HanaConnection conn = null;
       
        public string GetHUQuantity(string HU)
        
        
        {
 
            try
                
            {
                conn = new HanaConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Hana"].ConnectionString);
               
               // conn = new HanaConnection(strsql);
               string strSql = "select * from aa";
                conn.Open();
                HanaCommand cmd = new HanaCommand(strSql, conn);
                string Quantity = Convert.ToString(cmd.ExecuteScalar());
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
                return Quantity;
            }
            catch(Exception e)
            {
                return e.Message;
            }
           /* finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }*/
        }


    }

  • 写回答

1条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-01-22 16:38
    关注

    引用GPT,
    你遇到的“类型初始值设定项引发异常”问题,通常是由于尝试实例化的类的静态构造函数或静态变量初始化器中发生的异常。在你提供的代码中,HanaConnection 类是唯一可能抛出此类异常的地方。
    这种异常通常表示 .NET 运行时找不到,无法加载,或无法调用SAP的 HANA ADO.NET 数据提供程序的一部分(例如,找不到 DLL,DLL中缺少需要的方法,DLL依赖于其他缺失的 DLL等)。你应确认你的项目正确地包含并引用了 SAP HANA的 ADO.NET 驱动程序,驱动程序的版本与你的 SAP HANA 数据库兼容,以及驱动程序的所有依赖项都存在。
    在你的环境中,错误最可能的原因是项目没有找到 Sap.Data.Hana.dll 文件。你需要确认一下你是否已经在项目中添加了这个引用,并且在你的输出目录中可以找到这个dll。
    你还要保证 HANA 数据库的客户端已经安装在运行应用的服务器上。且该服务器需要有.NET Framework运行环境。
    最后,如果问题依旧存在,你可以尝试捕捉更详细的异常信息。在你的catch块中,改为return e.ToString();,这样可以提供更详细的异常信息,比如堆栈信息等,便于进一步定位问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月22日