小编trx*_*trx的帖子

在 Web API 中使用 ExceptionFilterAttribute

我正在尝试在创建的 Web API 中实现错误处理,需要以 JSON 格式返回异常详细信息。我创建了 BALExceptionFilterAttribute 像

public class BALExceptionFilterAttribute : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        base.OnException(actionExecutedContext);
        actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.BadRequest, new { error = actionExecutedContext.Exception.Message });
    }
}
Run Code Online (Sandbox Code Playgroud)

并在 Gloal.asax.cs 中注册它们,例如

GlobalConfiguration.Configuration.Filters.Add(new BALExceptionFilterAttribute());
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我想抛出异常

    [HttpGet]
    [BALExceptionFilter]
    public HttpResponseMessage Getdetails(string ROOM, DateTime DOB_GT)
    {
        if (string.IsNullOrEmpty(ROOM) 
        {
            return Request.CreateResponse(new { error = "Input paramete cannot be Empty or NULL" });
        }
            //throws the exception
            throw new BALExceptionFilterAttribute();

            List<OracleParameter> prms = new List<OracleParameter>();
            List<string> selectionStrings = new List<string>(); …
Run Code Online (Sandbox Code Playgroud)

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

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

收集参数用小巧玲珑查询oracle

在WEB API服务中传递参数数组时遇到问题

public class SampleController : ApiController
{
   public string Getdetails([FromUri] int[] id) 
   {
    var inconditions = id.Distinct().ToArray();
    using (var dbConn = new OracleConnection("DATA SOURCE=h;PASSWORD=C;PERSIST SECURITY INFO=True;USER ID=T"))
    {
        dbConn.Open();
        var strQuery = "SELECT PRIO_CATEGORY_ID AS PRIO, LANG_ID AS LANG, REC_DATE AS REC, REC_USER AS RECUSER, DESCR, COL_DESCR AS COL, ROW_DESCR AS DROW, ABBR FROM STCD_PRIO_CATEGORY_DESCR WHERE REC_USER  IN (:p)";
        var queryResult = dbConn.Query<SamModel>(strQuery, new { p = inconditions });
        return JsonConvert.SerializeObject(queryResult);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在在调用API时http://localhost:35432/api/Sample?id=1&id=83会抛出错误说明var queryResult = …

c# oracle dapper

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

无法在具有唯一索引的对象中插入重复的键行。重复的键值。该语句已终止

我是 Outsystems 和 SQL 的新手。我正在尝试创建一个实体所在的总线应用程序 在此处输入图片说明

当我尝试创建具有相同名称和不同路线和巴士 ID 的新乘客时。我得到 Cannot insert duplicate key row in object 'dbo.OSUSR_6SL_RIDER' with unique index 'OSIDX_OSUSR_6SL_RIDER_4NAME'. The duplicate key value is (ABC). The statement has been terminated. 当我在数据库表“dbo.OSUSR_6SL_RIDER”它不具有唯一标识设置检查名称字段。任何人都可以帮我解决这个问题。

sql-server outsystems

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

使用 navigateByUrl() 传递查询参数

我试图通过点击一个图标导航到一个新页面,下面是代码

  this.prj = e.data.project_number;
  this.router.navigateByUrl('/dashboard/ProjectShipment/634');
Run Code Online (Sandbox Code Playgroud)

而不是这个硬编码的查询参数,000634我必须将 a 传递this.prj给它。我的路径如下

const appRoutes: Routes = [
  {
  path: 'dB',
  data: { title: 'Dashboard' },
  children: [
      {
          path: 'ProjectShipment/:reportProject',
          component: ProjectShipmentComponent,
          data: { title: 'Project Shipment' },
      }
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular-routing angular angular7

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

在Dapper中处理Oracle数据库连接

我正在尝试连接到Oracle数据库并尝试执行查询.

所以下面是我的模型类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;

namespace TestAPI.Models
{
public class TestAPIModel
{
    [Key]
    public int PRIO_CATEGORY_ID { get; set; }
    public int LANG_ID { get; set; }
    public System.DateTime REC_DATE { get; set; }
    public int REC_USER { get; set; }
    public Nullable<int> RFCH_ID { get; set; }
    public string DESCR { get; set; }
    public string COL_DESCR { get; set; }
    public string ROW_DESCR { get; set; }
    public string …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc dapper asp.net-web-api

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

带有Swagger的Web API

我是.NET / MVC / Web API的新手。我创建了一个.Net Web API,该API接受输入参数查询OracleDatabase并以JSON返回结果。几乎遵循简单的C#代码。而且效果很好。我的控制器看起来像

public class DataController : ApiController
{
 [HttpGet]
public HttpResponseMessage Getdetails(string ROOM, DateTime DOB_GT)
{
        List<OracleParameter> prms = new List<OracleParameter>();
        prms.Add(new OracleParameter("ROOM", OracleDbType.Varchar2, ROOM, ParameterDirection.Input));
        prms.Add(new OracleParameter("DOB_GT", OracleDbType.Date, DOB_GT, ParameterDirection.Input));
       string connStr = ConfigurationManager.ConnectionStrings["SDataBaseConnection"].ConnectionString;
        using (OracleConnection dbconn = new OracleConnection(connStr))
        {
            DataSet userDataset = new DataSet();
            var strQuery = "SELECT * from SAMPLE_RESULTS_VW where ROOM = :ROOM and DOB > :DOB_GT ";
            var returnObject = new { data = new OracleDataTableJsonResponse(connStr, strQuery, prms.ToArray()) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-web-api swagger

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

Web API调用存储过程并返回结果

我正在创建一个接受两个称为ACC的输入参数的Web API。创建一个存储过程以在SQL Server中插入或更新Account表。帐户表只有两个字段AccountID nvarchar(50)(primaryKey)和Cnt int

 CREATE PROCEDURE [dbo].[usp_InserUpadte] 
 @Account_TT AS Account_TT READONLY

 AS
 BEGIN
 SET NOCOUNT ON;

 BEGIN TRANSACTION;

 MERGE dbo.[Account] prj
 USING @Account_TT tt
 ON prj.AccountID = tt.AccountID
 WHEN MATCHED THEN UPDATE SET prj.Cnt = prj.Cnt+1
 WHEN NOT MATCHED THEN INSERT (AccountID,Cnt)
 VALUES (tt.AccountID, 1);

 COMMIT TRANSACTION;
Run Code Online (Sandbox Code Playgroud)

现在,我尝试连接到SQL Server,但不确定如何将存储过程调用到ASP.NET Web API应用程序中并在其中传递帐户ID来创建或更新表

namespace WebService.Controllers
{
public class CreationController : ApiController
{
    [HttpGet]
    public HttpResponseMessage Get(string ACC)
    {
        string strcon =  System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
        SqlConnection DbConnection = new SqlConnection(strcon);
Run Code Online (Sandbox Code Playgroud)

我知道我们可以像这样直接调用查询

var strQuery = …
Run Code Online (Sandbox Code Playgroud)

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

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

简单的代码抛出预期; 错误

我使用if else子句创建了一个简单的代码,它会像预期的";"一样抛出错误.但是当我检查代码时,一切似乎都是正确的.我是C#编码的新手.

public string empstatus(string trmdate, string status)
 { 
   if( trmdate!= NULL)
     { 
       if(status = "RETIREE") 
         { 
           return "RT"; 
         } 
       else retun "FT"; 
     } 
   else return "TF";
 }
Run Code Online (Sandbox Code Playgroud)

c# biztalk

2
推荐指数
2
解决办法
104
查看次数

加密连接字符串

我们创建了Web API,它创建了与Oracle数据库的连接

using (OracleConnection dbconn = new OracleConnection("DATA SOURCE=J;PASSWORD=CM;PERSIST SECURITY INFO=True;USER ID=TR"))
Run Code Online (Sandbox Code Playgroud)

但是当我们在IIS中发布时希望它加密.我们是否在web.config文件中执行它们.在网络上.从VS中的文件系统发布后配置,我只看到下面的代码.我是否需要创建一个新的连接字符串作为我在Controller代码中提供的dbconn.

<oracle.manageddataaccess.client>
 <version number="*">
  <dataSources>
    <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
  </dataSources>
</version>
</oracle.manageddataaccess.client>
<connectionStrings>
 <add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=oracle_user;Password=oracle_user_password;Data Source=oracle" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

第一次创建应用程序.任何帮助是极大的赞赏.

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

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

“ CREATE / ALTER PROCEDURE”必须是查询批处理中的第一条语句

我试图在这样的数据库中创建一个存储过程DB_Interface

USE [DB_Interface]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE OR ALTER PROCEDURE [dbo].[ProcToCCreate]
Run Code Online (Sandbox Code Playgroud)

它引发错误:

消息156,级别15,状态1,第6行
关键字“ OR”附近的语法错误。

消息111,级别15,状态1,第10行
'CREATE / ALTER PROCEDURE'必须是查询批处理中的第一条语句。

这是我的第一个存储过程-不确定是否无法使用CreateAlter使用它。任何帮助是极大的赞赏

sql-server stored-procedures

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