使用Entity Framework从存储过程中获取数据
我试图获取内容一个表,其中包含从数据库上下文对象调用的动态SQL存储过程(使用Entity Framework 6.1.1),以便填充GridView
控件。我无法检索数据。
这是存储过程。这是一个学生演示存储过程中的SQL注入,所以我知道这是可注入的,它没关系。
ALTER PROCEDURE dbo.SearchProducts @SearchTerm VARCHAR(max)ASBEGIN DECLARE @query VARCHAR(max) SET @query = 'SELECT * FROM dbo.Products WHERE Name LIKE ''%' + @SearchTerm + '%''' EXEC(@query)END
然后我用来执行存储过程的C#代码是:
var db = new MyEntities();var TEST_SEARCH_TERM = "product";var result = db.SearchProducts(TEST_SEARCH_TERM);MyGridView.DataSource = result;MyGridView.DataBind();
执行时,在Visual Studio的数据库资源管理器中,存储过程正常工作。但是当在运行的ASP.NET应用程序中执行时,我在DataBind()
方法中得到一个异常,因为result
返回-1
而不是IEnumerable
DataSet
包含由存储过程的SELECT产生的对象。
如何检索数据并填充我的数据GridView
?
慕标5832272
相关分类