小编use*_*134的帖子

分页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 (OracleDataAdapter adapter = new OracleDataAdapter(selectCommand))
             {
                 DataTable selectResults = new DataTable();
                 adapter.Fill(selectResults);
                 var returnObject = new { data …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc paging asp.net-web-api

11
推荐指数
1
解决办法
1万
查看次数

为JSON构造C#对象

我正在尝试在我的应用程序中为JSON响应创建一个C#对象.我有如下的JSON

 {
"@odata.context": "https://example.com/odata/$metadata#REQ",
"value": [
    {
        "Id": 17,
        "Name": "Req"
    }
  ]
 }
Run Code Online (Sandbox Code Playgroud)

我不知道如何创建C#对象 @odata.context

public class RootObject
    {
        public string @odata.context { get; set; }
        public List<Value> value { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

它会在@ odata.context中抛出错误

c# json json-deserialization

5
推荐指数
1
解决办法
473
查看次数

无法为请求的配置对象创建 Web API 配置文件

我正在尝试使用 aspnet_regiis 加密 web.config 文件中给出的连接字符串。所以我试图打开 aspnet_regiis.exe

  aspnet_regiis -pe "connectionStrings" -app "/NewTestAPI" -prov "RsaProtectedConfigurationProvider"
Run Code Online (Sandbox Code Playgroud)

或者

 aspnet_regiis -pe "connectionStrings" -app "/E:/Dropbox/NewTestAPI" -prov "RsaProtectedConfigurationProvider"
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误,指出“无法为请求的配置对象创建配置文件。失败!” 我什至尝试共享文件夹

在此处输入图片说明

 aspnet_regiis -pe "connectionStrings" -app "/\\ABC\NewTestAPI" -prov "RsaProtectedConfigurationProvider"
Run Code Online (Sandbox Code Playgroud)

即使这会引发相同的错误,无法为请求的配置对象创建配置文件。失败!”

下面是我拥有的 connectionStrings

 <connectionStrings>
  <add name="ProConnection" connectionString="Data Source=J;User Id=T;Password=C;pooling=true;min pool size=5;Max Pool Size=60" providerName="Oracle.DataAccess.Client"/>
 </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我还尝试提供站点的物理路径以及站点 ID,如图所示,但错误相同

在此处输入图片说明

aspnet_regiis -pe "connectionStrings" -app "/E:\Dropbox\ABC\TestAPI" -site "3" -prov "RsaProtectedConfigurationProvider"

c# encryption asp.net-mvc asp.net-web-api

4
推荐指数
1
解决办法
1660
查看次数

处理Web API返回的大型JSON数据

我们正在构建一个Web API,它接收字符串数组作为输入参数,该参数查询oracle数据库并将结果作为JSON文件返回.

所以代码就像

 namespace PDataController.Controllers
{
  public class ProvantisDataController : ApiController
  {
    public HttpResponseMessage Getdetails([FromUri] string[] id)
    {

       List<OracleParameter> prms = new List<OracleParameter>();
        string connStr = ConfigurationManager.ConnectionStrings["PDataConnection"].ConnectionString;
        using (OracleConnection dbconn = new OracleConnection(connStr))
        {
            var inconditions = id.Distinct().ToArray();
            var srtcon = string.Join(",", inconditions);
            DataSet userDataset = new DataSet();
            var strQuery = @"SELECT 
                           STCD_PRIO_CATEGORY_DESCR.DESCR AS CATEGORY, 
                           STCD_PRIO_CATEGORY_DESCR.SESSION_NUM AS SESSION_NUMBER, 
                           Trunc(STCD_PRIO_CATEGORY_DESCR.START_DATE) AS SESSION_START_DATE, 
                           STCD_PRIO_CATEGORY_DESCR.START_DATE AS SESSION_START_TIME , 
                           Trunc(STCD_PRIO_CATEGORY_DESCR.END_DATE) AS SESSION_END_DATE, 
                             FROM 
                             STCD_PRIO_CATEGORY_DESCR, 
                             WHERE 
                            STCD_PRIO_CATEGORY_DESCR.STD_REF IN(";
            StringBuilder sb = new StringBuilder(strQuery);
             for(int x …
Run Code Online (Sandbox Code Playgroud)

c# asp.net oracle json asp.net-web-api

4
推荐指数
1
解决办法
8637
查看次数

扩展函数不能返回空值

我在biztalk map中使用下面的脚本functoid将字符串转换为dateTime

public DateTime? ConvertOpenDate(string openDate)
{
    DateTime oDate;
    if (!DateTime.TryParseExact(openDate, "yyyy-MM-DD HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out oDate))
    {
         return null;
    }
    else
    {
         return oDate;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这是错误的说法

扩展函数不能返回空值.

怎么处理这个.我将日期时间插入到MS SQL DB中

c# sql-server datetime biztalk biztalk-2013

1
推荐指数
1
解决办法
1390
查看次数

System.Collections.Generic.List <string>'不包含'add'的定义

我使用以下代码

public HttpResponseMessage Getdetails([FromUri] string[] Column)
    {
      List<string> selectionStrings;
      var colDict = new Dictionary<string, string>()
            {
            {"CATEGORY", "STCD_PRIO_CATEGORY_DESCR.DESCR"},
            {"SESSION_NUMBER", "STRS_SESSION3.SESSION_NUM"},
            {"SESSION_START_DATE","Trunc(STRS_SESSION3.START_DATE)"}
            };
      foreach (string col in Column)
      {
        string selector = colDict[col];
        selectionStrings.add(string.Format("{0} AS {1}", selector, col));
      }
      var strQuery = string.Format(@"SELECT {0}
                                     from STCD_PRIO_CATEGORY");
  }
Run Code Online (Sandbox Code Playgroud)

但是得到了错误

selectionStrings.add(string.Format("{0} AS {1}", selector, col));
Run Code Online (Sandbox Code Playgroud)

'System.Collections.Generic.List'不包含'add'的定义,也没有扩展方法'add'接受类型'System.Collections.Generic.List'的第一个参数(你是否缺少using指令或装配参考?)

我尝试添加,using System.Collections.Generic.List但它不起作用

c# asp.net asp.net-mvc

-4
推荐指数
1
解决办法
9061
查看次数