2011-07-21 34 views
3
 PaymentsDueEntityDataSource.ContextTypeName = "Bills.DAL.BillsEntities"; 
     PaymentsDueEntityDataSource.EnableFlattening = false; 
     PaymentsDueEntityDataSource.EntitySetName = "tblPayments_Due"; 

     PaymentsDueEntityDataSource.Where = "it.UserName = " + HttpContext.Current.User.Identity.Name.ToString(); 

     PaymentsDueEntityDataSource.Include = "tblType, tblRepeat"; 
     PaymentsDueEntityDataSource.EnableUpdate = true; 

當我刪除Where子句時,我的gridview返回所有記錄。當我硬編碼從HTML中的HttpContexxt字符串生成的相同字符串時,我的gridview將返回正確的記錄。但是,當我嘗試使用上面的代碼時,我得到超出範圍消息:如何在代碼隱藏中設置EntityDataSource的Where子句

'kwingat'無法在當前範圍或上下文中解析。確保所有引用的變量都在作用域中,所需的模式被加載,並且名稱空間被正確引用。靠近簡單的標識符,第6行,第15列。

任何想法?

回答

2

我認爲你需要把它作爲參數傳遞

PaymentsDueEntityDataSource.Where = "it.UserName = @UserID"; 
PaymentsDueEntityDataSource.WhereParameters.Add(new Parameter("UserID", TypeCode.Int32, + HttpContext.Current.User.Identity.Name.ToString())); 
+0

僅供參考,凡未經參數工作。 ...(「it.OrderID = 1」)...的作品。 –

+1

這是什麼「它」。前綴和爲什麼使用? – PeterX

+0

@PeterX:那只是從凱爾原來的貼子剪下來粘貼的。使用參數的建議是我的文章的唯一相關部分。 – rkw

相關問題