0

ストアド プロシージャ:

ALTER PROCEDURE [dbo].[TestDataSP]
AS 
BEGIN
    SELECT FirstName 
    FROM Employees 
    WHERE EmployeeID = 7
END

TaskTrackerDataService.cs

[WebGet]
public String GetEmployeeName()
{
    TaskTracker_EDM.TaskTrackerEntities ctx = new TaskTracker_EDM.TaskTrackerEntities();
    return ctx.TestDataSP().FirstOrDefault(); 
}

ストアド プロシージャがあり、Web から呼び出すことができます

http:localhost:2402/TaskTrackerDataService.svc/GetEmployeeName

従業員名を返します

<GetEmployeeName xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">Keko88</GetEmployeeName>

WPF プロジェクトからストアド プロシージャを呼び出そうとすると

TaskTrackerDataService.TaskTrackerEntities ctxDSvc =  new TaskTrackerDataService.TaskTrackerEntities(new Uri("http:localhost:2402/TaskTrackerDataService.svc"));

String emps1 = ctxDSvc.Execute<String>(new Uri("http:localhost:2402/TaskTrackerDataService.svc/GetEmployeeName")).ToString();

Console.WriteLine(string.Format("ID: {0} ==== ==== ====  ", emps1));

それはいつも戻ってくる

"System.Data.Services.Client.QueryOperationResponse`1[System.String]"

助けてください

4

1 に答える 1

0

エラーは常に「System.Data.Services.Client.QueryOperationResponse`1[System.String]」を返しました

シングルを追加すると、文字列の結果が正しく返されます

文字列 emps1 = ctxDSvc.Execute(new Uri("http:localhost:2402/TaskTrackerDataService.svc/GetEmployeeName")).Single();

間違ったのは String emps1 = ctxDSvc.Execute(new Uri("http:localhost:2402/TaskTrackerDataService.svc/GetEmployeeName")).ToString(); でした。

于 2013-11-25T21:27:48.803 に答える