繁体   English   中英

获取从存储过程SQL Server 2008 silvelight C#Linq返回的数据

[英]get the data that was returned from the stored procedure SQL Server 2008 silvelight C# Linq

大家好,我刚刚开始使用存储过程在Linq“ Entity Framwork”中编程,而我的问题是:

我想检索从存储过程返回的数据,这是我的代码:

这是我的存储过程,这只是一个简单的选择

USE [Arret_dev]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[IsTheSame] 
@ListeIdAffaires nvarchar(MAX),
AS
CREATE TABLE #AffairesIDs (AffaireID int);
DECLARE @requete nvarchar(max);
SELECT @requete =
    'INSERT INTO #AffairesIDs(AffaireID)
     SELECT [id] FROM [Affaire] WHERE ([id] in (' + @ListeIdAffaires + '))';
EXEC sp_executesql @requete;

BEGIN
SET NOCOUNT ON;
RETURN SELECT *
FROM #AffairesIDs, [dbo].[Affaire]  
WHERE id = AffaireID ;
    END
DROP TABLE #AffairesIDs;
GO

viewmodel代码:

private void IsTheSame(){
    IsBusy = true;
    InvokeOperation<IEnumerable<Affaire>> LoadAffaire = Context.Load(Context.IsTheSame(_selectedAffaires, InfoAffaire));
    LoadAffaire.Completed += new EventHandler(IsTheSame_Completed);
}

private void IsTheSame_Completed(object sender, EventArgs e)
{
    IsBusy = false;
    TexteInfo = "Succès : les données des affaires sélectionnées ont été chargée.";
}

DomaineService:

[Invoke]
public IEnumerable<Affaire> IsTheSame(IEnumerable<int> selectedAffaires, Affaire infoAffaire)
{
    // cette liste sera utilisée dans le IN de la proc stock
    string listeIdAffaires = string.Join(",", selectedAffaires.ToArray());

    return this.ObjectContext.IsTheSame(
        listeIdAffaires,
        );
}

如果您需要更多信息,请问我谢谢。

这是解决方案:

    InvokeOperation<IEnumerable<Affaire>> LoadAffaire;

    private void IsTheSame(){
        IsBusy = true;
        LoadAffaire = Context.IsTheSame(_selectedAffaires, InfoAffaire);
        LoadAffaire.Completed += new EventHandler(IsTheSame_Completed);
    }

    private void IsTheSame_Completed(object sender, EventArgs e)
    {
        IsBusy = false;
        TexteInfo = "Succès : les données des affaires sélectionnées ont été chargée.";
        IEnumerable<Affaire> affaire = LoadAffaire.Value.AsEnumerable();
        MessageBox.Show(affaire.ElementAt(0).nom_fichier_pretour);
    }

对于存储过程,我取“ RETURN”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM