CData ADO.NET Provider for Excel Online 2019J - Online Help

ストアドプロシージャ

CData ADO.NET Provider for Excel Online 2019J - Build 19.0.7354

次の例は、Entity Framework を使用してストアドプロシージャを呼び出す方法を示しています。

SQL でのストアドプロシージャの呼び出し

ストアドプロシージャを実行するには、 Entity Framework コンテキストを介してSQL を直接実行します。ストアドプロシージャの結果をキャプチャするクラス(以下のName クラスなど)を定義します。このクラスでは、使用する各出力カラムのプロパティを定義する必要があります。このクラスが定義されると、Entity Framework コンテキストのExecuteStoreQuery を呼び出すことができます。

C#

public class AddWorksheetOutput {
  public string Name { get; set; }
  // ... add other return values with matching data type
}

public class Program {
  static void Main(string[] args) {
    using (ExcelOnlineEntities context = new ExcelOnlineEntities())
    {
      //use the line below for versions earlier than EF 5:
	  //IEnumerable<AddWorksheetOutput> result = context.ExecuteStoreQuery<AddWorksheetOutput>("EXEC AddWorksheet @WorkbookId = ?;",new ExcelOnlineParameter("WorkbookId", "abc123"));
      //use the line below for EF 5 and 6:
	  IEnumerable<AddWorksheetOutput> result = context.Database.SqlQuery<AddWorksheetOutput>("EXEC AddWorksheet @WorkbookId = ?", new ExcelOnlineParameter("WorkbookId", "abc123"));
      List<AddWorksheetOutput> resultList = result.ToList<AddWorksheetOutput>();
      foreach (AddWorksheetOutput value in resultList) {
        Console.WriteLine("Name: " + value.Name);
      }
    }
  }
}

VB.NET

Public Class AddWorksheetOutput
	Public Property Name() As String
  ' ... add other return values with matching data type
End Class

Module Program
  Sub Main
    Using context As New ExcelOnlineEntities
	  'use the line below for versions earlier than EF 5:
      'Dim result As IEnumerable(Of AddWorksheetOutput) = context.ExecuteStoreQuery(Of AddWorksheetOutput)("EXEC AddWorksheet @WorkbookId = ?;", New ExcelOnlineParameter("WorkbookId", "abc123"))
	  'use the line below for EF 5 and 6:
	  Dim result As IEnumberable(Of AddWorksheetOutput) = context.Database.SqlQuery(Of AddWorksheetOutput)("EXEC AddWorksheet @WorkbookId = ?;", New ExcelOnlineParameter("WorkbookId", "abc123"))
      Dim resultList As List(Of AddWorksheetOutput) = result.ToList()
      For Each value As AddWorksheetOutput In resultList
        Console.WriteLine("Name: " + value.Name)
      Next
    End Using
  End Sub
End Module

次の例に示すように、パラメータを直接渡すことで、ExcelOnlineParameter を使用しないようにすることもできます。

"EXEC AddWorksheet @WorkbookId=abc123, ..."

 
 
Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 19.0.7354.0