我正在尝试在创建的 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) 在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 = …
我是 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”它不具有唯一标识设置检查名称字段。任何人都可以帮我解决这个问题。
我试图通过点击一个图标导航到一个新页面,下面是代码
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) 我正在尝试连接到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) 我是.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) 我正在创建一个接受两个称为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) 我使用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) 我们创建了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)
第一次创建应用程序.任何帮助是极大的赞赏.
我试图在这样的数据库中创建一个存储过程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'必须是查询批处理中的第一条语句。
这是我的第一个存储过程-不确定是否无法使用Create
或Alter
使用它。任何帮助是极大的赞赏
c# ×6
asp.net ×5
asp.net-mvc ×3
dapper ×2
sql-server ×2
angular ×1
angular7 ×1
biztalk ×1
encryption ×1
javascript ×1
oracle ×1
outsystems ×1
swagger ×1
typescript ×1