.net code 连接SAP HANA 数据库

使用 SAP .NET Connector

SAP 提供了一个专门的 .NET Connector,可以直接用于连接 SAP HANA 数据库。

1、下载配置SAP HANA客户端驱动程序

下载地址:https://tools.eu1.hana.ondemand.com/#hanatools

安装 SAP .NET Connector

 

image

项目中引用Sap.Data.Hana

SAP .NET Connector安装完成会在
C:\Program Files\sap\hdbclient\dotnetcore\v6.0
生成安装文件

image

 建议把这2个dll,放在项目bin目录下和C:\Windows\System32下

要将其添加到项目中,请在解决方案资源管理器中右键单击项目的“引用”文件夹,然后选择“添加引用...”。在.NET选项卡中搜索“ Sap.Data.Hana.Net.v6.0”引用,然后单击“确定”。如果您使用的是.NET的其他版本,请从列表中选择一个。

"HanaConnection": "Server=10.11.35.2:30044;UserName=saphanadb;Password=Init123456;",
"SapClient": "610"

 

using HPRTWEBAPI.Application.Service.SapRfc.Dto.Response;
using HPRTWEBAPI.Application.Service.SapRfc.Interface;
using HPRTWEBAPI.Database;
using Sap.Data.Hana;
using System.Data;
using System.Text;
using Sap.EntityFrameworkCore.Hana;
using NewLife.Reflection;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;


namespace HPRTWEBAPI.Application.Service.SapRfc
{
    [ApiDescriptionSettings("SapHana", Name = "SapHana", Order = 100)]
    [Route("api")]
    public class SapHanaService : ISapHanaService, IDynamicApiController, ITransient
    {
        private string connectionStringHana = App.Configuration["HanaConnection"].ToString();
        private string sapClient = App.Configuration["SapClient"].ToString();
        public SapHanaService()
        {
        }
        /// <summary>
        /// SapHana查询测试
        /// </summary>
        /// <returns></returns>
        [HttpGet("sap/GetAll")]
        public async Task<List<OuputKH>> GetAll()
        {
            using (HanaConnection conn = new HanaConnection(connectionStringHana))
            {
                //using (HanaDataAdapter dataAdapter = new HanaDataAdapter("SELECT PARTNER ,BU_GROUP FROM BUT000 WHERE  PARTNER = '0010001942'", conn))
                //{
                //    DataTable testTable = new DataTable();
                //    dataAdapter.Fill(testTable);
                //    var ouputKHs = testTable.ToList<OuputKH>();
                //    return ouputKHs;
                //}

                string sql = @"SELECT PARTNER ,BU_GROUP FROM BUT000 WHERE  BUT000.PARTNER=? AND CLIENT=?";
                HanaCommand command = new HanaCommand(sql, conn);
                command.Parameters.AddWithValue("@BUT000.PARTNER", "0010001942");
                command.Parameters.AddWithValue("@CLIENT", sapClient);
                using (HanaDataAdapter dataAdapter = new HanaDataAdapter(command))
                {
                    DataTable testTable = new DataTable();
                    dataAdapter.Fill(testTable);
                    var ouputKHs = testTable.ToList<OuputKH>();
                    return ouputKHs;
                }

            }
        }
    }
}

  

 

posted @ 2025-09-10 10:16  飞鱼上树了  阅读(29)  评论(0)    收藏  举报
/* 看板娘 */