2013-08-24 109 views
1

我有一个存储过程是这样的:如何通过调用存储过程获取数据表中的数据?

ALTER PROCEDURE [dbo].[SelectUserInfo] 

AS 
BEGIN 
select * from User_Info 
END 

,我使用LINQ调用这个程序,并希望将数据存储在一个datatabledataset 我在这里做什么:

DataClassesDataContext dc = new DataClassesDataContext(); 
DataTable dt = null; 
dt = (DataTable)dc.SelectUserInfo(); 

但它的工作不正常。

错误是这样的:

无法转换类型的对象 'SingleResult`1 [SelectUserInfoResult]' 键入 'System.Data.DataTable'。

请帮我做到这一点...

+0

什么是错误? –

+0

我已经包含了错误,现在请看看 –

+0

我不认为你可以直接将结果投给DataTable。结果是'SelectUserInfoResults'类型,您必须在某个函数导入中定义它。 – Nilesh

回答

1

确保你确实需要一个DataTable/DataSet中。

的DBML文件将为您的存储过程回报类,你的情况有一类SelectUserInfoResults当您添加存储过程SelectUserInfo您的dbml文件中得到了创建。

所以,如果你不被迫使用DataTables/DataSet,你可以简单地创建一个List<SelectUserInfoResults>作为你的返回类型。

DataTables/DataSets和Linq To Entities类的性质非常不同,我建议尽可能避免混合它们。

相关问题