小编Yah*_*hya的帖子

DateTime.ParseExact - 为什么yy变成2015而不是1915年

为什么.NET假设从下面我们的意思是2015年,而不是1915年.

var d = DateTime.ParseExact("20/11/15", "dd/MM/yy", new CultureInfo("en-GB"));
Run Code Online (Sandbox Code Playgroud)

我想,它试图接近,但它背后是否有合理的设计决策?

c# datetime parsing

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

Model和ViewModel的验证最佳实践

我有单独的模型和视图模型类.其中viewmodel类仅进行UI级别验证(请参阅:验证:模型或ViewModel).

我可以在控制器中验证模型(vewmodel)是否有效.

问:我如何验证模型(带有数据注释的主要实体).

我没有使用模型对象开发viewmodel.只需复制属性并添加该特定视图中可能需要的所有属性.

//Model Class
public class User
{
    [Required]
    public string Email {get; set;}

    [Required]
    public DateTime Created {get; set;}
}

//ViewModel Class
public class UserViewModel
{
    [Required]
    public string Email {get; set;}

    [Required]
    public string LivesIn {get; set;}
}

//Post action
public ActionResult(UserViewModel uvm)
{
    if( ModelState.IsValid)
        //means user entered data correctly and is validated

    User u = new User() {Email = uvm.Email, Created = DateTime.Now};
    //How do I validate "u"?

    return View();
}
Run Code Online (Sandbox Code Playgroud)

应该做这样的事情: …

c# model viewmodel asp.net-mvc-2-validation asp.net-mvc-2

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

为什么0/0是NaN但0 / 0.00不是

使用DataTable.Compute,并建立了一些案例进行测试:

dt.Compute("0/0", null); //returns NaN when converted to double

dt.Compute("0/0.00", null); //results in DivideByZero exception
Run Code Online (Sandbox Code Playgroud)

我已经更改了代码以同时处理两者。但是想知道这里发生了什么吗?

c# double datatable decimal formula

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

SQL Query获取misc列信息

我需要编写一个查询,我可以获取有关所有列的信息(包含数据类型),也可以知道哪些列PK/FK.因为FK,需要额外的信息,如其他表.我有查询可行,但看起来有点矫枉过正.

这可以做得更好吗?我不喜欢子查询加入它.它必须是一个查询,不能通过SP.

我的例子是反对的Northwind(FK我正在测试一些额外的关系)

SELECT 
    t.name AS TableName, 
    t.object_id AS TableObjectId,
    tCols.column_name AS ColumnName, 
    tCols.data_type AS ColumnDataType, 
    ISNULL(tCols.numeric_scale, 0) AS ColumnDecimalPlaces,
    CASE tConstraints.CONSTRAINT_TYPE
        WHEN 'PRIMARY KEY'
            THEN '1'
            ELSE '0'
    END AS ISPK, 
    CASE tConstraints.CONSTRAINT_TYPE
        WHEN 'FOREIGN KEY'
            THEN '1'
            ELSE '0'
    END AS ISFK, 
    tConstraints.CONSTRAINT_TYPE,
    tConstraints.CONSTRAINT_NAME,
    fkInfo.FK_name,
    fkInfo.PK_column,
    fkInfo.PK_table,
    fkInfo.PK_name
FROM sys.objects t
LEFT JOIN information_schema.columns tCols ON tCols.TABLE_NAME = t.name 
LEFT JOIN (
    SELECT  
        tc.CONSTRAINT_NAME, …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

不要将JToken日期时间字符串转换为DateTime

试图将日期时间为字符串的JToken解析为字符串.它隐含地将它视为DateTime,解析然后作为字符串传回.

原值是: "2015-11-23T00:00:00"

当我这样做时,arr["value"].ToString(); 我得到:"23/11/2015 00:00:00"

我真正想要的是传递的东西,即原始值.

尝试过使用Formatting.None,但带来了双引号等.

有一个简单的方法吗?

c# datetime parsing json

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