2017-03-07 38 views
0

存儲過程我在SQL Server中的存儲過程:使用在C#EF

Create PROCEDURE SPLogCountInUser 
    (@ManegerID int) 
AS 
    SELECT COUNT(*) AS LogDone 
    FROM vw_UserApprove 
    WHERE UserMasterID = @ManegerID AND UserState = 0 

我想用這個過程來告訴我這個存儲過程的輸出在我的WPF實體框架。

我在我的WPF窗口中有一個標籤,我希望它向我展示上述過程的輸出。我的代碼是這樣的,但它不工作:

 HadishDataBaseEntities database = new HadishDataBaseEntities(); 
     var All = database.SPLogCountInUser(HadishCode.gUserID); 
     lbl_Log.Content = All.ToList(); 

回答

0

什麼是「不行」是什麼意思?您是否收到編譯錯誤,運行時異常或只是意外的結果?請在aska問題時始終指定。

什麼是您的SPLogCountInUser方法的返回類型?如果是IEnumerable,你可以在LabelContent屬性設置爲第一個項目的字符串表示:

HadishDataBaseEntities database = new HadishDataBaseEntities(); 
var All = database.SPLogCountInUser(HadishCode.gUserID).ToList(); 
if(All != null && All.Count > 0) 
    lbl_Log.Content = All[0].ToString(); 
0

可以是這樣做的:

HadishDataBaseEntities database = new HadishDataBaseEntities(); 
var All = database.Database.SqlQuery<int>("SPLogCountInUser @ManegerID", HadishCode.gUserID); 
lbl_Log.Content = All.First(); //Your stored procedure will always return one row, so we don't need ToList(), additionally the label will not show the actual value if you set its content to a List. 
0

我認爲.ToList();必須添加,如果你想讓你的SP獲得一些有意義的價值。 我犯了這樣的錯誤,由於缺少.ToList(),並沒有得到任何東西,即使我知道SQL調用是正確的。 但添加.ToList();然後返回值是一個列表,你可以找到你的價值。