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

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

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

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

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

意图:每次需要新报告时,我不需要发布我的软件的新版本。我将只在后端创建存储过程,并在我的 API 读取的某个表中添加新存储过程的名称。

最佳答案

这可以通过 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

显示它或以某种方式处理它取决于您。

关于c# - 在 ASP.net 中运行时调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421804/

相关文章:

sql - 为什么 SQL Server 的 OBJECT_ID(NVARCHAR) 不带变量?

c# - 从 C# 调用时,存储过程不返回记录,但在 SSMS 中工作

jquery - 使用单个ajax请求渲染json数据和部分 View

c# - 将 LINQ-to-SQL 谓词组合成单个谓词

c# - 需要帮助序列化/反序列化这个 JSON

c# - 如何在 SQL Server 中存储 Point 数据类型?

asp.net-mvc - 哪个 NuGet 包在您的 Views 文件夹中创建了 web.config?

jquery - 对象不支持属性或方法 'live'

c# - 如何通过mysql数据库在xamarin android中授权

c# 获取具有最大值的变量名