小编Dud*_*lou的帖子

以"TryParse"方式反序列化json

当我向服务发送请求(我不拥有)时,它可能会响应请求的JSON数据,或者出现如下错误:

{
    "error": {
        "status": "error message",
        "code": "999"
    }
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,HTTP响应代码都是200 OK,所以我不能用它来确定是否有错误 - 我必须反序列化要检查的响应.所以我有一些看起来像这样的东西:

bool TryParseResponseToError(string jsonResponse, out Error error)
{
    // Check expected error keywords presence
    // before try clause to avoid catch performance drawbacks
    if (jsonResponse.Contains("error") &&
        jsonResponse.Contains("status") &&
        jsonResponse.Contains("code"))
    {
        try
        {
            error = new JsonSerializer<Error>().DeserializeFromString(jsonResponse);
            return true;
        }
        catch
        {
            // The JSON response seemed to be an error, but failed to deserialize.
            // Or, it may be a successful JSON response: do nothing.
        } …
Run Code Online (Sandbox Code Playgroud)

.net c# json

56
推荐指数
4
解决办法
5万
查看次数

存储过程中的表类型参数导致操作数类型冲突错误

我想给一个标识符数组作为存储过程的参数.

存储过程如下所示:

ALTER PROCEDURE [dbo].[SearchPerson]
    @personType INT = NULL,
    @city NVARCHAR(64) = NULL,
    @siteIds IntegerList READONLY,
    -- some other params...
AS
    SELECT
        -- some fields...
    FROM dbo.PersonView AS pv
    WHERE
    (
        (@personType IS NULL OR pv.PersonType = @personType) AND
        (@city IS NULL OR pv.City LIKE '%' + @city + '%') AND
        (pv.SiteId in (SELECT si.Value FROM @siteIds AS si)) AND
        -- some other params filter...
    )
Run Code Online (Sandbox Code Playgroud)

用户表类型如下所示:

CREATE TYPE [dbo].[IntegerList] AS TABLE(
    [Value] [int] NULL
)
Run Code Online (Sandbox Code Playgroud)

当我从SSMS中的脚本调用存储过程时(我最初从.NET代码调用它时遇到同样的问题):

DECLARE @siteIds AS …
Run Code Online (Sandbox Code Playgroud)

stored-procedures user-defined-types sql-server-2008

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

在类上使用DisplayAttribute

我们可以使用System.ComponentModel.DataAnnotations.DisplayAttribute为属性设置标签,我想将它用于类,但不允许在类上使用它.

using System.ComponentModel.DataAnnotations;

[Display(Name = "A person")]
public class Person
{
    [Display(Name = "A name")]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

有人知道解决方法吗?

编辑:我想在强类型视图上使用它.当我创建一个新的强类型视图时,类名称是用HTML硬编码的,如下所示:

@model Models.Person
<fieldset>
    <legend>Person</legend>
    <div class="display-label">
        @Html.LabelFor(model => model.Name)
    </div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

我想做一些类似于Name房产的事情.

.net c# asp.net-mvc

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

与Drupal db_select的条件和OR

嗨我怎么能在drupal中做这样的情况?

WHERE (date = xxx and time = xxx) OR (date = xxx and time = xxx)
Run Code Online (Sandbox Code Playgroud)

我想用db_select来做这个条件.

谢谢.

sql where conditional-statements drupal-7

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