2012-02-07 49 views
1

這裏很簡單的問題:如何從LINQ獲取ExecuteCommand(或ExecuteQuery)的字符串值?

我有一個LINQ查詢,然後運行一個foreach循環。

在那個foreach中,我通過LINQ調用ExecuteCommand從同一個表中檢索一個單一的不對稱解密值。由於查詢的複雜性,我不得不通過ExecuteCommand。

現在我更簡單的問題是...如何從那裏檢索該值?我知道這只是一個單一的價值,所以我不需要通過它或任何東西來循環。我試過string myString = db.ExecuteCommand("command goes here");無濟於事。它甚至不會讓我在之後通過自己的習慣來運行它。

無論如何,我的人才流失在這個問題上。任何幫助將非常感激。提前致謝!

+0

你到目前爲止得到了什麼代碼? – Nauman 2012-02-07 05:03:55

+0

你可以發佈代碼嗎?當你說「它甚至不會讓我在之後通過自己的習俗」時,你的意思是什麼。如果你有一個沒有被輸入的foreach語句,那麼這意味着沒有項目可以迭代。你的命令是否實際返回一個值? – jhsowter 2012-02-07 05:05:13

回答

0

ExecuteCommand方法的返回值只是一個整數,其中包含受命令影響的行數。

http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.executecommand.aspx

如果要真正地接收數據,您需要使用的executeQuery重載之一。

這將返回一個IEnumerable與您指定的類型。既然你知道它的將是隻是一個單一的價值,這種方法似乎值得看的,以實際得到的值:

http://msdn.microsoft.com/en-us/library/bb357287.aspx

2

請嘗試這樣的。

string result = db.ExecuteQuery<string>("SQL Command").Single() 

這與ExecuteScalar()方法類似,只是想返回單個值。

相關問題