在 SAP 中使用 SELECT 命令运行查询

mySAP Business Suite .NET Framework数据提供程序将 SAP 系统公开为 ADO.NET 数据源。 使用适用于 mySAP Business Suite 的 .NET Framework 数据提供程序,可以通过执行 SELECT 语句来查询 SAP 项目。

如何使用 SELECT 命令执行查询

若要使用适用于 SAP 的数据提供程序查询 SAP 项目,请执行以下步骤:

执行查询

  1. 在) Microsoft.Data.SAPClient 的代码中包含引用 (和 using 语句。

  2. 使用适用于 SAP 连接字符串的数据提供程序创建 SAPConnection 对象。 有关连接字符串的详细信息,请参阅读取 SAP 连接字符串的数据提供程序类型

  3. 通过在 SAPConnection 上调用 Open 来打开与 SAP 系统的连接。

  4. SAPConnection 创建 SAPCommand 对象。

  5. SAPCommandCommandText 属性中指定 SELECT 语句。 如有必要,可以使用 SAPParameter 对象指定参数。 有关如何使用 SELECT 语句查询 SAP 项目的详细信息,请参阅 SAP 中的 SELECT 语句的语法。 有关如何指定 BAPI 或 RFC 的示例,请参阅 SELECT 语句的示例

  6. 执行 命令以执行查询并在 SAPDataReader 中获取结果。

  7. SAPDataReader 读取结果。

  8. 使用完它们后,请关闭 (或释放) SAPConnectionSAPDataReader

    适用于 SAP 的数据提供程序还公开 了 SAPClientFactory 类,可用于创建 SAPConnectionSAPCommandSAPConnection 对象。 有关 sap 数据提供程序扩展的 ADO.NET 类的详细信息,请参阅 使用 SAP 适配器扩展 ADO.NET 接口

示例

以下示例将参数化内部联接语句上的 select 结果写入控制台。

using System;  
using System.Collections.Generic;  
using System.Text;  
  
using Microsoft.Data.SAPClient;  
  
namespace SapAdoSelect  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
        /// <summary>  
        /// select top 1 * from sflight inner join spfli on sflight.connid = spfli.connid where spfli.connid = @connid  
        /// </summary>  
  
        string connstr = "TYPE=A; ASHOST=YourSapHost; SYSNR=00; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;";  
  
           using (SAPConnection conn = new SAPConnection(connstr))  
            {  
                conn.Open();  
                using (SAPCommand cmd = conn.CreateCommand())  
                {  
                    cmd.CommandText = "select top 1 * from sflight inner join spfli on sflight.connid = spfli.connid where spfli.connid = @connid";  
                    cmd.Parameters.Add(new SAPParameter("@connid", 17));                      
                    using (SAPDataReader dr = cmd.ExecuteReader())  
                    {  
                        do  
                        {  
                            int rows = 0;  
                            while (dr.Read())  
                            {  
                                rows++;  
                                StringBuilder b = new StringBuilder();  
                                for (int i = 0; i < dr.FieldCount; i++)  
                                {  
                                    b.Append(dr[i].ToString()+" ");  
                                }  
                                Console.WriteLine("row {0}: {1} ", rows, b.ToString());  
                            }  
                            Console.WriteLine("Number of rows:{0}", rows);  
  
                        } while (dr.NextResult());  
                    }  
                }  
            }  
        }  
    }  
}  

另请参阅

使用 mySAP Business Suite 的 .NET Framework 数据提供程序
示例