我已经设置了一些日志中间件,可以使用 HttpContext 获取和记录信息。
我需要将 HttpResponse.Body 的位置设置为 0 以读取整个流,但是,无论我尝试什么,它都会抛出“不支持指定的方法”并失败。
这对我来说很奇怪,因为 position 内置于 HttpResponse.Body 中,我之前成功使用过它。
我还尝试使用 HttpResponse.Body.Seek 获得相同的结果。
在这一点上我被卡住了,任何帮助将不胜感激。
更新:一旦我将 response.body 移动到新的内存流中,我就能够改变它的位置,但是,现在它返回一个空的主体。
public async Task Invoke(HttpContext context)
{
//Retrieve request & response
var request = context.Request;
var response = context.Response;
if (request.Path != "/")
{
var reqBody = request.Body;
var resBody = response.Body;
string path = request.Path;
string method = request.Method;
string queryString = HttpUtility.UrlDecode(request.QueryString.ToString());
int statusCode = context.Response.StatusCode;
var buffer = new byte[Convert.ToInt32(request.ContentLength)];
await request.Body.ReadAsync(buffer, 0, buffer.Length);
var reqBodyText = Encoding.UTF8.GetString(buffer); …Run Code Online (Sandbox Code Playgroud) 我创建了一个存储过程来从 SQL Server 数据库中以 JSON 对象的形式提取数据。我的所有数据都是相关的,我试图将其作为 JSON 字符串获取。
目前,我可以很好地从 SQL Server 中获取 JSON 字符串,但是该对象始终包含转义字符(例如“{\”field\”:\“value\”})。我想提取相同的内容JSON,但没有转义字符。为了测试这一点,我使用了一些简单的查询,并使用SqlDataAdapter我的存储过程将它们输入.NET。
让我困惑的是,当我在 SSMS 中运行查询时,我从未看到任何转义字符,但是一旦它拉出 .NET 应用程序,转义字符就会出现。我想防止这种情况发生,并让我的应用程序仅获取未转义的 JSON 字符串。
我尝试了在研究过程中发现的一些建议,但没有产生我想要的结果。我所看到的更改(记录在 MSDN 和其他 SO 帖子中)涉及获取未转义的结果,但仅限于 SSMS 内,而不是其他应用程序内。
我尝试过的:
简单的 Json 查询设置为参数,然后使用 JSON_QUERY 来选择参数:
DECLARE @JSON varchar(max)
SET @JSON = (SELECT '{"Field":"Value"}' AS myJson FOR JSON PATH)
SELECT JSON_QUERY(@JSON) AS 'JsonResponse' FOR JSON PATH
Run Code Online (Sandbox Code Playgroud)
这会在 .NET 应用程序中生成以下内容:
"[{\"JsonResponse\":{\"Field\":\"Value\"}}]"
Run Code Online (Sandbox Code Playgroud)
这会在 SSMS 中生成以下内容:
[{"JsonResponse":[{"myJson":"{\"Field\":\"Value\"}"}]}]
Run Code Online (Sandbox Code Playgroud)
使用 JSON_QUERY 进行不带参数的简单 Json 查询:
SELECT JSON_QUERY('{"Field":"Value"}') AS 'JsonResponse' FOR JSON PATH
Run Code Online (Sandbox Code Playgroud)
这会在 .NET 应用程序中生成以下内容
"[{\"JsonResponse\":{\"Field\":\"Value\"}}]" …Run Code Online (Sandbox Code Playgroud) 我有一个包含数百个表的 MySQL 数据库。
我需要删除基于名为“companyId”的公共列的所有表中的记录 - 该列存在于数据库的所有表中。
如何删除所有表中 columnId = somenumber 的所有记录?
先感谢您 !
伊万诺 C.
@SocratesG我尝试了你的存储过程,但我得到以下创建SP的信息:
ERROR 1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '@TableName VARCHAR(128); 附近使用的正确语法。
DECLARE @MyColumn VARCHAR(128);
SET @MyColumn = 'compan' at line 4
SQL Statement:
CREATE PROCEDURE `deletePortalInstance` ()
BEGIN
DECLARE @TableName VARCHAR(128);
DECLARE @MyColumn VARCHAR(128);
SET @MyColumn = 'companyId'
DECLARE MyCursor CURSOR FOR
(SELECT OBJECT_NAME(c.id) AS ObjectName
FROM dbo.syscolumns c
WHERE OBJECTPROPERTY(c.id,'ISTABLE') = 1 --Search for tables only
AND c.name = @MyColumn)
OPEN MyCursor
FETCH NEXT FROM …Run Code Online (Sandbox Code Playgroud) 我一直在为我的一个网页开发步进器元素,并尝试实现该.reset()功能,以便使用材料设计文档 ( https://material.angular.io/components/)将表单恢复为空白状态步进器/概述)
按照多表单组示例,我可以看到 .reset 通过让您回到第一步并清除表单来正常工作。但是,在尝试使用单一表单结构时,我发现这stepper.reset()会让您回到第一步,但并没有清除表单。
我尝试标记重置按钮,Type="button"因为单个表单需要在“下一步”和“后退”按钮上进行标记,以防止单击按钮时提交表单,但没有看到任何更改。
我希望在单击重置时发生这两个操作,但我不确定是否必须编写手动重置功能,或者我的代码中是否有错误。
对此的任何帮助将不胜感激。谢谢!
创建.component.html
<form [formGroup]="formGroup" class="content-container" (ngSubmit)="onSubmit()">
<h1>{{title}}</h1>
<mat-vertical-stepper #stepper>
<mat-step formGroupName="someFieldGroup" [stepControl]="someFieldGroup">
<ng-template matStepLabel>Fill out Field</ng-template>
<mat-form-field>
<input matInput placeholder="Some Field" formControlName="someFieldCtrl" name="someFieldName" required>
<mat-error>This field is required</mat-error>
</mat-form-field>
<div>
<button type="button" mat-button matStepperNext>Next</button>
</div>
</mat-step>
<mat-step formGroupName="anotherFieldGroup" [stepControl]="anotherFieldGroup">
<ng-template matStepLabel>Fill out Field</ng-template>
<mat-form-field>
<input matInput placeholder="Another Field" formControlName="anotherFieldCtrl" name="anotherFieldName" required>
<mat-error>This field is required</mat-error>
</mat-form-field>
<div>
<button type="button" mat-button matStepperPrevious>Back</button>
<button type="button" …Run Code Online (Sandbox Code Playgroud) 我正在尝试对用户个人资料中的名字和姓氏执行内联编辑功能。我的布局如下所示:
然而,当我从使用标准输入标签切换到使用 mat-form-field (就像我想用于材料一样)时,用户详细信息最终看起来像这样:
我尝试使用各种 CSS 来尝试将其落实到位,但我无法将所有内容恢复到用户详细信息行中。
在检查器中检查它,我发现有一个正在使用的 .mat-form-field-infix 类,但我无法覆盖它包含的 padding 和 border-top 属性。我不知道如何处理改变 mat-X 元素,因为似乎材料更适合保持事物的原样。
我会喜欢一些想法。
超文本标记语言
<div fxLayout="column">
<div fxLayout="row"><span>{{user?.email}}</span></div>
<div fxLayout="row">
<div fxLayoutAlign="space-between">
<form [formGroup]="formGroup">
<mat-form-field>
<input matInput
formControlName="firstName"
value="{{user?.firstName}}"/>
</mat-form-field>
<mat-form-field>
<input matInput
formControlName="lastName"
value="{{user?.lastName}}"/>
</mat-form-field>
</form>
</div>
<div>
<button *ngIf="!edit" mat-icon-button (click)="editClicked()">
<mat-icon matTooltip="Edit User">edit</mat-icon>
</button>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
所以今天早上我被打得很沮丧.
我有两张桌子,如下表所示.
TABLE A
InvoiceNo | Total
000001 | $100
000002 | $50
000003 | $200
etc..
TABLE B
InvoiceNo | ItemCode
000001 | Item-A
000001 | Item-B
000001 | Item-C
000002 | Item-A
000003 | Item-B
000003 | Item-D
etc...
Run Code Online (Sandbox Code Playgroud)
我需要从表2中选择ITEM-B存在的位置,还要根据InvoiceNo获取所有其他项目.所以它应该根据InvoiceNo获取ItemCode> InvoiceNo> All Items
OUTPUT
InvoiceNo | Total | ItemCode
000001 | $100 | Item-A
000001 | $100 | Item-B
000001 | $100 | Item-C
000003 | $200 | Item-B
000003 | $200 | Item-D
Run Code Online (Sandbox Code Playgroud)
我目前正在处理的查询是:
SELECT a.InvoiceNo, a.Total, …Run Code Online (Sandbox Code Playgroud) sql ×3
angular ×2
sql-server ×2
angular7 ×1
c# ×1
css ×1
httpcontext ×1
httpresponse ×1
json ×1
layout ×1
mysql ×1
one-to-many ×1
sql-delete ×1
t-sql ×1