.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

项目中引用Sap.Data.Hana
SAP .NET Connector安装完成会在
C:\Program Files\sap\hdbclient\dotnetcore\v6.0
生成安装文件

建议把这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;
}
}
}
}
}

浙公网安备 33010602011771号