小编Rea*_*tor的帖子

如何使用正则表达式匹配单个空格而不仅仅是单个空格

这是我目前拥有的,这将匹配字母数字字符和空格:

^[a-z0-9\s]+$
Run Code Online (Sandbox Code Playgroud)

我想做的是确保只有一(1)个空格才能匹配.以上将匹配"这是一个测试",但如果输入是"This isatest"或"T hisisatest",我只希望它匹配.一旦总空间不止一个,它将不再匹配.

理想情况下,如果空间是领先或尾随,它也不匹配,但那只是结冰.

编辑: 这个想法是,这将用于在帐户创建时验证帐户名称.帐户名称只能包含拉丁字母,数字和单个空格.但是,它可以是所有字母或所有数字,不需要空格.这绝对是关于空间而不是空白.

regex

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

如何将DataTable列的整个内容转换为C#中的分隔字符串?

我正在使用SqlDataAdapter和DataSet从MSSQL服务器检索数据.从那个DataSet我创建了一个DataTable.我的目标是将表的每一列转换为字符串,其中元素以逗号分隔.我想我会在分隔符工作之前先尝试字符串转换.

代码在ASP.Net页面的代码隐藏中运行.最终的目标是将字符串传递给jscript变量,这是一个"功能需求",我从列创建一个分隔的字符串,并且它必须最终作为jscript变量.

这是我到目前为止所拥有的:

    DataSet myDataSet = new DataSet();
    mySqlDataAdapter.Fill(myDataSet);
    DataTable temperature = myDataSet.Tables["Table"];

    // LOOP1
    foreach (DataRow row in temperature.Rows)
    // this loop works fine and outputs all elements
    // of the table to the web page, this is just to
    // test things out
    {
        foreach (DataColumn col in temperature.Columns)
        {
            Response.Write(row[col] + " ### ");
        }
        Response.Write("<br>");
    }

    // LOOP2
    foreach (DataColumn column in temperature.Columns)
    // this loop was meant to take all elements for each
    // column …
Run Code Online (Sandbox Code Playgroud)

c# asp.net datatable dataset datacolumn

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

.Net C#String.Join如果元素值为null,如何输出"null"而不是空字符串?

根据String.JoinMSDN文档 "如果value中的任何元素为null,则使用空字符串."

代码我从DataTable中提取数据

rotationValues = string.Join<object>(", ",
    from r in rotationData.Rows.OfType<DataRow>() select r[5]);
Run Code Online (Sandbox Code Playgroud)

这将导致输出类似于:

8, 7, , 12, , , 13, 
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以简单地将"null"替换为空字符串,如下所示:

8, 7, null, 12, null, null, 13, null
Run Code Online (Sandbox Code Playgroud)

.net c# string null

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

Highcharts如何使用JavaScript变量作为系列数据源?

我正在运行一个asp.net代码隐藏,它创建一个字符串变量,该变量包含由逗号分隔的浮点集合.在C#中有类似的东西

string myCString = "4.5, 3.1, 6.5, 7.0, -1.3";
Run Code Online (Sandbox Code Playgroud)

然后,此变量进入asp.net网页,并将其分配给JavaScript变量:

var myJString = '<%=myCString %>';
Run Code Online (Sandbox Code Playgroud)

现在我们进入Highcharts,其中普通系列的语法如下所示:

series: [{
     name: 'Series1',
     data: [1.1, 3.8, 5.3, 9.8, 5.0]
       }]
Run Code Online (Sandbox Code Playgroud)

我想要做的是将myJString分配给系列的数据字段.我尝试了两种方法,但都没有用.解决方案可能是微不足道的,但我甚至不是一个热心的程序员.看起来问题的核心是Highcharts期望一组数字而不是字符串.但是,我对JavaScript中方括号的理解是它们将内部的任何内容转换为字符串?

这里是没有工作:

series: [{
     name: 'Series1',
     data: myJString    // does not work
       }]

series: [{
     name: 'Series1',
     data: myJString - 0    // does not work either
       }]
Run Code Online (Sandbox Code Playgroud)

第二次尝试来自highcharts - 可变数据导致浏览器锁定想起它有意义它不起作用,因为从字符串减去0不仅仅是一个数字达不到目标.

第一次尝试不起作用也是有道理的,因为它似乎想要一个数字数组而不是字符串.现在我的实际问题:

我可以在JavaScript中廉价地转换我的逗号分隔浮点数字符串,以便我可以在数据字段中使用它,如果是这样,我该怎么做?在代码隐藏中执行此操作并将数组传递给JavaScript然后使用数组尝试整个事情会更好(性能明智)吗?这假设myJString不是浮点数组是实际问题.

提前感谢您提供的任何见解.

javascript arrays string type-conversion highcharts

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

TSQL如何为PIVOT指定列表范围?

下面的SELECT语句来自我用来检索数据的存储过程,该数据随后被发送到JSON:

SELECT *
FROM (
    SELECT CAST(DateTimeUTC as SmallDateTime) as [DateTime], DataValue, VariableID
    FROM DataValues
    WHERE SiteID = @siteID and VariableID BETWEEN 9 and 10 and DateTimeUTC >= DATEADD (day, @pastDays, getdate())
     ) TableDate
PIVOT (SUM(DataValue) FOR VariableID IN ([9],[10])) PivotTable ORDER BY [DateTime]
Run Code Online (Sandbox Code Playgroud)

我想要完成的是修改过程以接受要转移的列范围.在上面的例子中,我只检索两个变量的值.如果我想要检索VariableID 1到10或1到50,该怎么办?必须有一种方法以除以下方式之外的方式检索1到10:

 VariableID IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10])
Run Code Online (Sandbox Code Playgroud)

使用PIVOT和UNPIVOT MSDN上没有提到的方式来指定一个范围.

我意识到可以在存储过程中使用动态SQL,但鉴于我自己对SQL的了解以及那些必须长期维护的人的知识,我对通过使用动态SQL引入额外的复杂性犹豫不决.这里有一个概念上类似的问题,请参阅TSQL Pivot长列列表,并使用动态SQL解决方案进行了回答.

t-sql sql-server pivot

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

?? 运算符未在DataTable DataRow中触发System.DBNull类型

这是.Net C#String的后续问题.如果元素值为null,如何输出"null"而不是空字符串?答案建议使用??运算符来定义自定义空值,但替换永远不会被触发.

DataSet myDataSet = new DataSet();
mySqlDataAdapter.Fill(myDataSet);
DataTable rotationData = myDataSet.Tables["Table"];

rotationValues = string.Join(", ",
    from r in rotationData.Rows.OfType<DataRow>()
    select r[5] ?? "null");
Run Code Online (Sandbox Code Playgroud)

当我将代码更改为:

rotationValues = string.Join(", ",
    from r in rotationData.Rows.OfType<DataRow>()
    select r[5].GetType());
Run Code Online (Sandbox Code Playgroud)

我可以观察到其中包含有效数据System.Double的元素的数据类型是NULL,而元素的数据类型是NULL System.DBNull.难道??不是操作上System.DBNull

.net c# linq datatable null

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