C#如何通过NCO3.0来连接SAP并调用SAP中的RFC

简介: C#如何通过NCO3.0来连接SAP并调用SAP中的RFC首先安装NCO3.0,这是SAP针对.Net开发的专用组件,安装完成之后在C:\Program Files\SAP\SAP_DotNetConnector3_x86目录下面会有sapnco_utils.dll sapnco.dll rscp4n.dll libicudecnumber.dll四个DLL文件,在项目里面添加引用,找到这个4个DLL文件,引用到项目里面,libicudecnumber.dll会提示无法引用,貌似要将项目的.NET目标平台改为4.0的才可以,这里我没有亲测。

C#如何通过NCO3.0来连接SAP并调用SAP中的RFC
首先安装NCO3.0,这是SAP针对.Net开发的专用组件,安装完成之后在C:\Program Files\SAP\SAP_DotNetConnector3_x86目录下面会有sapnco_utils.dll sapnco.dll rscp4n.dll libicudecnumber.dll四个DLL文件,在项目里面添加引用,找到这个4个DLL文件,引用到项目里面,libicudecnumber.dll会提示无法引用,貌似要将项目的.NET目标平台改为4.0的才可以,这里我没有亲测。
下面开始编程了:

 1 using SAP.Middleware.Connector;
 5 public void GetSapData() 
 6         {
 7             RfcConfigParameters rfcPar = new RfcConfigParameters();
 8             rfcPar.Add(RfcConfigParameters.Name, "CON");
 9             rfcPar.Add(RfcConfigParameters.AppServerHost, "IP");
10             rfcPar.Add(RfcConfigParameters.Client, "800");
11             rfcPar.Add(RfcConfigParameters.User, "UserID");
12             rfcPar.Add(RfcConfigParameters.Password, "Password");
13             rfcPar.Add(RfcConfigParameters.SystemNumber, "02");
14             rfcPar.Add(RfcConfigParameters.Language, "EN");         
15             RfcDestination dest = RfcDestinationManager.GetDestination(rfcPar);
16             RfcRepository rfcrep = dest.Repository;
17             IRfcFunction myfun = null;
18             myfun = rfcrep.CreateFunction("SAP里面的函数名称");
19             myfun.SetValue("VTYPE", "0");//SAP里面的传入参数
20             myfun.Invoke(dest);
21             IRfcTable IrfTable = myfun.GetTable("IT_ZMYTB2");
22             //提前实例化一个空的表结构出来
23             DataTable dt = new DataTable();
24             dt.Columns.Add("USERID");
25             dt.Columns.Add("USERPWD");
26             dt.Columns.Add("USERADDRESS");
27             //循环把IRfcTable里面的数据放入Table里面,因为类型不同,不可直接使用。
28             for (int i = 0; i < IrfTable.Count; i++)
29             {
30                 IrfTable.CurrentIndex = i;
31                 DataRow dr = dt.NewRow();
32                 dr["USERID"] = IrfTable.GetString("USERID");
33                 dr["USERPWD"] = IrfTable.GetString("USERPWD");
34                 dr["USERADDRESS"] = IrfTable.GetString("USERADDRESS");
35                 dt.Rows.Add(dr);
36             }
37             //将重新生成的Table赋值给数据控件DataGridView。
38             dgv.DataSource = dt;
39         }

 

相关文章
|
C# 数据库
用C#连接到数据库实现学生学籍管理系统(二)
用C#连接到数据库实现学生学籍管理系统
|
4月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
3月前
|
SQL 网络协议 数据库连接
已解决:连接SqlServer出现 provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程【C#连接SqlServer踩坑记录】
本文介绍了解决连接SqlServer时出现“provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程”错误的步骤,包括更改服务器验证模式、修改sa用户设置、启用TCP/IP协议,以及检查数据库连接语句中的实例名是否正确。此外,还解释了实例名mssqlserver和sqlserver之间的区别,包括它们在默认设置、功能和用途上的差异。
|
7月前
|
存储 C# 索引
C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法
字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合
125 2
|
SQL 关系型数据库 MySQL
C#使用Npgsql或SqlClient连接数据库
在C#使用Npgsql和SqlClient连接SQLserver、pgsql
259 2
|
C# 数据库
用C#连接到数据库实现学生学籍管理系统(三)
用C#连接到数据库实现学生学籍管理系统
|
C# 数据库 C语言
用C#连接到数据库实现学生学籍管理系统(一)
用C#连接到数据库实现学生学籍管理系统
|
SQL 关系型数据库 数据库连接
C#二十五 连接式访问数据库
C#二十五 连接式访问数据库
60 0
|
监控 安全 网络协议
Baumer工业相机堡盟相机如何通过BGAPI SDK获取相机的IP地址和相机连接的网口IP地址(C#)
Baumer工业相机堡盟相机如何通过BGAPI SDK获取相机的IP地址和相机连接的网口IP地址(C#)
141 0
|
存储 开发工具 C#
Baumer工业相机堡盟相机如何使用NEOAPI SDK实现相机的连接(C#)
Baumer工业相机堡盟相机如何使用NEOAPI SDK实现相机的连接(C#)
123 0