如何通过调用存储过程获取数据表上的数据

本文关键字:数据 数据表 获取 何通过 调用 存储过程 | 更新日期: 2023-09-27 18:29:03

我有一个这样的存储过程:

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".

请帮我做这个。。。

如何通过调用存储过程获取数据表上的数据

确保您确实需要DataTable/Datat。

DBML文件为存储过程创建一个返回类,在您的情况下,有一个类SelectUserInfoResults是在您将存储过程SelectUserInfo添加到DBML文件时创建的。

因此,如果您没有被迫使用DataTables/DataSet,您可以简单地创建一个List<SelectUserInfoResults>作为返回类型。

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