c# web api oracle,c# – 分析Web API返回的大量数据

我们创建了用于查询Oracle数据库的WebAPI.查询返回巨大的结果,因此有时会抛出OutOfMemoryException.

建议是使用Paging概念.我不明白客户端应用程序将如何知道必须调用API多少次才能获得整个结果集.我还需要为分页创建一个单独的类,还是可以在我的API控制器中操作它.

任何人都可以帮助我,因为这是我的第一个Web API.我们无法为此创建存储过程,因为我们只对数据库具有读访问权限

public HttpResponseMessage Getdetails([FromUri] string[] id)

{

string connStr = ConfigurationManager.ConnectionStrings["ProDataConnection"].ConnectionString;

using (OracleConnection dbconn = new OracleConnection(connStr))

{

var inconditions = id.Distinct().ToArray();

var srtcon = string.Join(",", inconditions);

DataSet userDataset = new DataSet();

var strQuery = @"SELECT * from STCD_PRIO_CATEGORY where STPR_STUDY.STD_REF IN(" + srtcon + ")";

using (OracleCommand selectCommand = new OracleCommand(strQuery, dbconn))

{

using (OracleD

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在C# WebAPI中连接数据库,你需要采用以下步骤: 1. 首先,安装数据库提供程序(如SqlClient)。 2. 在WebAPI项目中添加连接字符串,该连接字符串应包含数据库服务器名称、数据库名称、用户名和密码。 3. 在WebAPI项目中创建一个类,该类将连接到数据库并执行查询或存储过程。 4. 在需要访问数据库的控制器中,创建一个类的实例,并调用该类中的方法以执行查询或存储过程。 下面是一个连接到SQL Server数据库的示例代码: ```csharp using System.Data.SqlClient; public class DataAccess { private readonly string _connectionString; public DataAccess(string connectionString) { _connectionString = connectionString; } public void ExecuteQuery(string query) { using (var connection = new SqlConnection(_connectionString)) { connection.Open(); using (var command = new SqlCommand(query, connection)) { command.ExecuteNonQuery(); } } } public SqlDataReader ExecuteReader(string query) { var connection = new SqlConnection(_connectionString); connection.Open(); var command = new SqlCommand(query, connection); return command.ExecuteReader(); } } ``` 在控制器中调用该类: ```csharp [ApiController] [Route("[controller]")] public class ProductsController : ControllerBase { private readonly string _connectionString; public ProductsController(IConfiguration configuration) { _connectionString = configuration.GetConnectionString("DefaultConnection"); } [HttpGet] public IEnumerable<Product> Get() { var dataAccess = new DataAccess(_connectionString); var reader = dataAccess.ExecuteReader("SELECT * FROM Products"); while (reader.Read()) { yield return new Product { Id = reader.GetInt32(0), Name = reader.GetString(1), Price = reader.GetDecimal(2) }; } } } ``` 在上面的代码中,我们在控制器中注入了一个 IConfiguration 对象,以获取连接字符串。然后,我们创建了一个 DataAccess 对象,并调用 ExecuteReader 方法来执行查询。最后,我们使用 SqlDataReader 对象来读取结果集。 ### 回答2: C是一种广泛使用的编程语言,由丹尼斯·里奇在1972年至1973年之间创建。它被设计成一种通用的编程语言,用于开发各种应用程序。C语言的设计目标是使程序员能够更好地控制计算机的硬件资源,同时具有高效性和可移植性。 C语言有很多特点和优势。首先,它是一种结构化的编程语言,使得程序的组织和维护更加容易。其次,C语言具有高效的执行速度和低内存消耗,这使得它在嵌入式系统和底层开发中得到广泛应用。此外,C语言还具有丰富的库函数和工具,使得程序开发更加便捷和高效。 与其他编程语言相比,C语言的学习曲线较为陡峭,需要掌握一些底层的概念和编程技巧。但一旦掌握了这些基础知识,就可以更好地理解和使用其他高级编程语言。因此,学习C语言对于计算机科学和软件工程领域的学生来说是非常重要的。 C语言在各个领域有广泛应用。它可以用于开发操作系统、网络协议、数据库管理系统等底层软件。同时,C语言也可以用于开发应用程序,如游戏、图形界面、金融软件等。许多著名的软件工具和系统也是使用C语言开发的。例如,UNIX操作系统、Linux内核、MySQL数据库等。 总的来说,C语言是一种重要的编程语言,具有广泛的应用范围和众多的优势。通过学习和掌握C语言,可以使我们更好地理解计算机的工作原理,培养编程思维和解决问题的能力,并为未来学习其他编程语言打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值