小编Kyl*_*yle的帖子

检查JObject中的空/ null JToken

我有以下......

JArray clients = (JArray)clientsParsed["objects"];

foreach (JObject item in clients.Children())
{
    // etc.. SQL params stuff...
    command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]);
}
Run Code Online (Sandbox Code Playgroud)

JTokenToSql 看起来像这样......

public static object JTokenToSql(JToken obj)
{
    if (obj.Any())
        return (object)obj;
    else
        return (object)DBNull.Value;
}
Run Code Online (Sandbox Code Playgroud)

我也试过((JObject)obj).Count..但似乎没有工作.

c# sql json.net

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

如何在JsonConvert.DeserializeObject中处理null/empty值

我有以下代码:

return (DataTable)JsonConvert.DeserializeObject(_data, (typeof(DataTable)));
Run Code Online (Sandbox Code Playgroud)

然后,我试过:

var jsonSettings = new JsonSerializerSettings
{
    NullValueHandling = NullValueHandling.Ignore
};

return (DataTable)JsonConvert.DeserializeObject<DataTable>(_data, jsonSettings);
Run Code Online (Sandbox Code Playgroud)

返回行抛出错误:

{"转换值\"\"时出错,输入'System.Double'."}

网上有很多解决方案建议Class使用可空类型创建自定义,但这对我不起作用.我不能指望json处于某种格式.我无法控制列数,列类型或列名称.

c# json json.net

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

使用SQL PATINDEX提取字符串,不同大小的子字符串

我试图提取###x###,###x##有时候#x#.有时在数字和x之间可能存在空格.从本质上讲,我可能遇到类似的字符串

  • 720x60
  • 720x600
  • 720 x 60
  • 720_x_60
  • 1x1的

PATINDEX()用来找到第一次出现的模式'%[0-9]%x%[0-9]%'.到现在为止还挺好.然后我用它PATINDEX()来找到之后第一次出现非数字字符串.这是我遇到麻烦的地方.我在屏幕截图中得到了结果.代码也在下面.

SELECT *
    ,CASE WHEN StartInt > 0
        THEN SUBSTRING(Placement, StartInt, SizeLength) ELSE NULL END AS PlacementSize
FROM
(SELECT Placement
    --find the first occurrence of #*x*#
    ,PATINDEX('%[0-9]%x%[0-9]%',Placement) AS StartInt

    --find the first non-digit after that
    ,PATINDEX(
        '%[^0-9]%'
        ,RIGHT(
            Placement + '_' --this underscore adds at least one non-digit to find
            ,LEN(Placement)
                -
            PATINDEX('%[0-9]%x%[0-9]%',Placement) - 5
            )
        ) + 6 AS …
Run Code Online (Sandbox Code Playgroud)

regex sql substring sql-server-2012

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

在坐标之间绘制多边形,防止相交

JS小提琴

我有一个坐标数组填充鼠标点击a canvas.

var pointsArray = [];
Run Code Online (Sandbox Code Playgroud)

arraypush使用click事件编辑的x和y值.

pointsArray.push({x: xVal, y: yVal});
Run Code Online (Sandbox Code Playgroud)

我迭代点数组并在当前点和前一点之间画一条线.

function drawPolygon(points) {
    //check arguments for null values
    if(!points)
        return false;

    var i;
    for(i = 0; i < points.length; i++)
        drawLine(points[i-1], points[i]);

    //draw the final line
    drawLine(points[i-1], points[0]);
}
Run Code Online (Sandbox Code Playgroud)

drawLine看起来像这样:

function drawLine(point1, point2) {
    //check arguments for null values
    if(!point1 || !point2)
        return false;

    context.beginPath();
    context.moveTo(point1.x, point1.y);
    context.lineTo(point2.x, point2.y);
    context.stroke();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,根据用户点击的顺序,我可以让线条交叉,我不想要:http: //i.imgur.com/3gaHRTa.png 我如何解决这个问题?我的第一直觉告诉我在array当时的抽奖中从上到下,从左到右排序.

javascript html5 canvas

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

使用代码和消息抛出新异常

我正在从包含statusCodestatusMessage... 的服务器解析JSON 我如何在我的异常中抛出这些,以便我不必if在我的catch中使用-statements?所以,我可以有一个通用的过程,处理所有exc.Codeexc.Message,而不必寻找它.

这是我的投掷

else if (statusCode.Equals(26) && statusMessage.StartsWith("response sent", StringComparison.OrdinalIgnoreCase))
    throw new Exception("Response sent - 26");
else if (statusCode.Equals(0))
    throw new Exception("Fatal exception - 0");
else if (statusCode.Equals(3))
    throw new Exception("Invalid parameters - 3");
else if (statusCode.Equals(24))
    throw new Exception("Incorrect response Id - 24");
Run Code Online (Sandbox Code Playgroud)

这是我的捕获

try
{
    dataResponse = GetStatus.RequestStatus(httpRequest);
}
catch (Exception exc)
{
    if (exc.Message.ToString() == "Response sent - 26")
    {
        string errorCode = "26";
        string …
Run Code Online (Sandbox Code Playgroud)

c# exception-handling try-catch throw

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

隐藏在epplus中的数据透视表中的小计

我正在使用EPPLUS生成我的数据透视表(请参阅此SO帖子).我有以下代码

//group by fields
foreach (string row in _GroupByColumns)
{
    ExcelPivotTableField field = pivotTable.Fields[row];

    //field formating
    field.Sort = eSortType.Ascending;
    field.Outline = false;
    field.Compact = false;
    field.ShowAll = false;
    field.SubtotalTop = false; //doesn't work, subtotals still there when excel is opened

    //doesn't work, will result in "unreadable content" error when Excel is opened
    //field.SubTotalFunctions = eSubTotalFunctions.None;

    //add it to the pivot
    pivotTable.RowFields.Add(field);
}
Run Code Online (Sandbox Code Playgroud)

_GroupByColumns是一个List<string>按列包含我的组.

我以为field.SubtotalTop = false;会隐藏小计.它没有. field.SubTotalFunctions = eSubTotalFunctions.None;打开Excel时导致"无效数据"错误.我还能尝试什么?

c# excel pivot-table epplus

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

DataColumnCollection 不包含 Cast 的定义

为什么这个演员不起作用? table.Columns.Cast<DataColumn>()

using (SqlBulkCopy bcp = new SqlBulkCopy(conn))
{
    if (conn.State != ConnectionState.Open)
        conn.Open();

    bcp.DestinationTableName = destinationTable;

    //map the columns in the datatable to the sql table
    table.Columns.Cast<DataColumn>().ToList().ForEach(c => bcp.ColumnMappings.Add(c.ColumnName, c.ColumnName));
}
Run Code Online (Sandbox Code Playgroud)

我以为我要疯了,所以我尝试了一个测试表......同样的事情......

在此处输入图片说明

这是错误:

错误 1“System.Data.DataColumnCollection”不包含“Cast”的定义,并且最佳扩展方法重载“System.Data.EnumerableRowCollectionExtensions.Cast(System.Data.EnumerableRowCollection)”有一些无效参数

错误 2 实例参数:无法从“System.Data.DataColumnCollection”转换为“System.Data.EnumerableRowCollection”

c# datatable casting

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

如何在不使用 hasClass() 的情况下检查表行是否具有类名?

我需要按名称检查表行 (TR) 是否具有类。到目前为止,我有以下几点:

var myClass = "myClass";

//only myClass if it doesn't exist already
if (!(rowGet.className == "myClass") || !(rowGet.className == "myClass anotherClass")) {
     if (rowGet) { // only add the class if TR exists
         rowGet.className = myClass;
     }
}
Run Code Online (Sandbox Code Playgroud)

rowGet 是来自表的 TR。当我尝试 hasClass(myClass) 时,我收到一条错误消息,指出 HTMLTableElement 没有方法 hasClass。是的,我引用了 jQuery。

javascript jquery

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

使用LINQ将JArray中的字符串连接起来

我有一个看起来像这样的JArray:

在此输入图像描述

我正在使用下面的代码来获得预期的结果: 6035940:8061090,6035940:8084337.

我可以用Linq清理它吗?怎么样?

public static string GiveClientCampaignParam(JArray myArray)
{
    StringBuilder sb = new StringBuilder();

    foreach (var arrayItem in myArray)
    {
        string clientId = arrayItem["ClientId"].ToString();
        string campaignId = arrayItem["CampaignId"].ToString();

        sb.Append(clientId + ":" + campaignId + ",");
    }
    sb.Remove(sb.Length - 1, 1);

    return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)

c# linq json.net

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

如何根据点击将UL / LI导航项目“标记”为“活动”?

每个<a链接都是jQuery隐藏(显示)某些div的锚点。

我正在使用此CSS处理悬停样式:

ul.textMenu a:hover

{   
    border-bottom: 3px solid #ff5c00;
    margin-bottom: -3px;
}
Run Code Online (Sandbox Code Playgroud)

用户单击一个项目后,我希望该项目border-bottom继续存在。我该怎么做呢?

菜单

html javascript css jquery

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