小编exp*_*uin的帖子

HttpContext.Response.Body.Position = 0 - “不支持指定的方法”错误

我已经设置了一些日志中间件,可以使用 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)

c# httpresponse httpcontext

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

从 SQL 获取未转义的 JSON

我创建了一个存储过程来从 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)

sql t-sql sql-server json

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

SQL-根据列值删除所有表中的行

我有一个包含数百个表的 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)

mysql sql sql-delete

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

Angular Material Vertical Stepper 单一形式 .reset() 无法正常工作

我一直在为我的一个网页开发步进器元素,并尝试实现该.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)

angular angular-material-stepper angular7

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

从 mat-form-field 填充和删除边距的正确方法

我正在尝试对用户个人资料中的名字和姓氏执行内联编辑功能。我的布局如下所示:

我期望它看起来如何

然而,当我从使用标准输入标签切换到使用 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

css layout angular-material angular

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

表B中的SQL SELECT基于列但基于TABLE A ID获取所有行

所以今天早上我被打得很沮丧.

我有两张桌子,如下表所示.

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 sql-server one-to-many

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