2016-09-06 47 views
1

我有一個表(UserQuestions)在我的數據庫(WebSiteUsers),其中包含QuestionID字段作爲主鍵和QuestionContext字段,其中包含作爲其值被問到的問題。 現在我想通過獲取QuestionID來顯示QuestionContext值的文本框。 我用這些LINQ的命令和他們都不給我正確的答案:linq命令沒有得到數據庫的答案

string Questioncontext = new WebSiteUsersEntities().UserQuestions.Where(p => p.QuestiuonID.ToString() == QuestionID).Select(p => new { p.QuestionContext}).ToString(); 
    string Questionx = (from q in new WebSiteUsersEntities().UserQuestions where q.QuestiuonID.ToString() == QuestionID select q.QuestionContext).ToString(); 

    QuestionCntxt.Text = Questionx; 

的結果是這樣的:

選擇 [Extent1] [QuestionContext] AS [QuestionContext] FROM [DBO。 ] [UserQuestion] AS [Extent1] WHERE CAST([Extent1] [QuestiuonID] AS爲nvarchar(最大))= @ p__linq__0

+0

發佈'UserQuestion'類會有幫助。此外,正確的標記(EF,哪個版本等) –

+0

UserQuestion是我的數據庫中的表,這是表:create table UserQuestion (QuestiuonID int Primary Key identity, UserID uniqueIdentifier外鍵引用aspnet_Users(UserId), QuestionTitle Nvarchar(max), QuestionContext nvarchar(max), DateAsked datetime ) –

回答

1

我想你的QuestionID變量是string型的,而數據庫列的類型的int

因此,而不是使用查詢內

q.QuestiuonID.ToString() == QuestionID

標準,變量轉換爲int和使用,作爲標準。

另外ToString只是給你的SQL查詢文本,而不是結果。

var questionID = int.Parse(QuestionID); 
string Questioncontext = new WebSiteUsersEntities().UserQuestions 
    .Where(p => p.QuestiuonID == questionID) 
    .Select(p => p.QuestionContext) 
    .FirstOrDefault(); 

請注意,我也改變了select返回直接QuestionContext字符串,而不是QuestionContext屬性匿名對象:如果你希望不止一個結果或FirstOrDefault如果你希望零個或一個結果使用ToList

+0

多數民衆贊成它。 FirstOrDefault解決問題。那麼你 –

+0

@ user5752702希望你能接受答案否? – Sampath

相關問題