在ASP.net中运行时调用存储过程

时间:2016-05-24 19:01:10

标签: c# sql-server asp.net-mvc entity-framework stored-procedures

我已根据报告的需要在SQL Server中创建了各种存储过程。我想创建一个单独的API,它读取存储过程的名称作为输入,并返回从存储过程返回的结果的数组。

要注意,同一个方法将调用各种存储过程并将一种JSON格式的动态匿名对象数组返回给我的UI。

使用Entity Framework是否可以实现解决方案。不使用ADO.net连接机制?

意图:每当需要新报告时,我都不需要制作新版本的软件。我将在后端创建存储过程,并在某些表中添加新存储过程的名称,该表将由我的API读取。

1 个答案:

答案 0 :(得分:0)

使用SqlDataAdapter个对象很容易获得。但是据我所知,你不能用Entity Framework来做,只需直接SqlConnection管理。

SqlDataAdapter有a nice example这样做:

private static DataSet SelectRows(DataSet dataset, string connectionString,string queryString) 
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand(queryString, connection);
        adapter.Fill(dataset);
        return dataset;
    }
}

结果DataSet将包含一个(或者更多,如果sproc返回更多)DataTable将包含执行结果。

由您来显示或以某种方式处理它。