小编D S*_*ley的帖子

SQL中的Case语句给出错误

我正在尝试编写一个查询,它将输出为MONTH,YEAR.

我写的时候:

 select CAST( tbl.MONTH as varchar(2) ) + ', ' + CAST ( tbl.YEAR as varchar(4) ) as [DATE] 
 from TABLE as tbl
Run Code Online (Sandbox Code Playgroud)

我把输出作为

    1,2014
    4,2014 (depending upon the input)
Run Code Online (Sandbox Code Playgroud)

但是,现在,我想用JAN替换1,用DECRIL 12代替4

所以,我试着写一个案例陈述:

SELECT 
    case when tbl.MONTH ='1' 
    then ('JAN' + ', ' + CAST ( tbl.YEAR as varchar(4) )) as [DATE1]  
from TABLE as tbl
Run Code Online (Sandbox Code Playgroud)

这会给出语法错误.谁能告诉我,我应该做什么?

sql sql-server

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

如何在泛型方法中使用 IOptions<T> 作为泛型参数

我正在尝试创建一个用作IOptions<T>参数的通用方法,但代码似乎无效。

Visual Studio 显示以下消息:

TConfig 必须是具有非无参数构造函数的非抽象类型,才能将其用作泛型类型或方法中的参数“TOption”'IOptions<TOptions>'

任何有关如何解决此问题的建议将不胜感激。谢谢!!

public static IServiceCollection AddConfigurations<TConfig>(
    this IServiceCollection services, IConfiguration configuration, 
    IOptions<TConfig> options) 
    where TConfig : class
{
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

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

EF选择MAX值<= 5

我无法弄清楚如何使用EF来选择数据库行,基于其最大值但是低于或等于5.

这是我的代码,但这只会选择一个值,而不是整行:

Prices pr = db.Prices.Where(s => s.numdays <= totaldays).Max(s=>s.numdays)

感谢您的时间!

c# linq asp.net-mvc-4 entity-framework-5

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

制作多个字符串的哈希键的最快方法

历史原因很长,但问题很简单。有 3 个字符串,我需要缓存匹配值。为了获得快速缓存,我使用以下代码:

public int keygen(string a, string b, string c)
    {
        var x = a + "@@" + b + "@@" + c;
        var hash = x.GetHashCode();
        return hash;
    }
Run Code Online (Sandbox Code Playgroud)

(请注意,字符串a, b,c不包含代码"@@")它本身的缓存只是一个Dictionary<int, object>

我知道存在散列键可能不唯一的风险,但除此之外:

有谁知道制作 int 键的更快方法吗?(在 C# 中)此操作大约占用总 CPU 时间的 15%,并且这是一个长时间运行的应用程序。

我尝试了几种实现,但未能找到更快的实现。

c# performance

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

C#属性作为参考

基本的基础我搞砸了C#属性和引用类型.

public Address adr { get; set; }

public class Address
{

    //Field
    public string AddressLine1;   

    //Property
    public string Country {get; set;}
}

public void ChangeCountry(string _Country)
{
    _Country = "US";
}

public void ChangeAddress(Address _adr)
{
    _adr.Country = "US";
}

private void button1_Click(object sender, EventArgs e)
{
    adr = new Address();
    ChangeCountry(adr.Country);

    MessageBox.Show(adr.Country);
    //(?)Country is reported empty string. Property did not updated outside.

    ChangeAddress(adr);

    MessageBox.Show(adr.Country);
    //OK. Country is reported 'US'


}
Run Code Online (Sandbox Code Playgroud)

在这里我的问题;

  1. 当我们将一个Property(简单或复杂的)直接传递给将尝试修改它的方法时,是否确保此属性在任何地方都被修改?我的意思是像ref关键字一样?因为我不能将"ref"关键字与属性一起使用;我直接将属性传递给方法进行修改,我不确定它是否总是会在外部更新/修改.当我没有看到ref关键字; 这让我很担心:)

  2. 在上面的例子中; …

c# properties reference parameter-passing argument-passing

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

如何在sql中的每个字符串中添加一个空格,然后在字符串中添加4个字符

有谁知道如何在sql中的字符串中每2个字符和4个字符串中添加一个空格.

示例:如果我有以下字符串:

@test = '0458475865'
Run Code Online (Sandbox Code Playgroud)

如何在sql中的字符串内每2个char然后4个char中添加一个空格,这样当我选择时,@test输出将如下所示:

04 5847 5865
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

用于返回匿名类型列表的方法的返回类型是什么?

做一些旧代码的重构,开发人员负责很久就离开了.

他遗赠了我的Linq:

var orders = memberOrders
   .Join(members, x => x.MemberID, y => y.MemberID, (x,y) => new { Order = x , y.MemberName })
   .OrderByDescending(x => x.Order.MailingDate).ToList();
Run Code Online (Sandbox Code Playgroud)

这会创建某种双值列表,其中Order对象连接到该对象的MemberName字符串.

我想要一个函数来返回它.但是,我无法弄清楚该函数需要返回的类型.

调用GetType()显示它被调用List`1,这不是非常有用.它看起来像是List<T>由编译器动态构建到自定义对象中.

它是什么,我怎么能从函数中返回它?

c# linq list

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

虚拟和覆盖

我来自 C++ 的世界,您可能知道那里只有一个用于虚拟方法的关键字,即virtual. 因此,在 C++ 中,您使用相同的virtual关键字(在 C# 中使用override)重新定义派生类中的虚拟方法。我完全了解多态性以及如何new在 C# 中“覆盖”和工作。但是,我无法在书中找到为基类和派生类中的虚拟方法创建两个不同的关键字,即virtualoverride对应的背后是否有一些想法?还是只是为了清楚起见?

c# virtual-functions

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

获取类的变量列表

Class foo
{
   public string name;
   public int age;
   public datetime BirthDate;
}
Run Code Online (Sandbox Code Playgroud)

我有上面的课.

我想要foo类的变量列表.

我试过了

foo fooObj= new foo();
fooObj.GetType().GetProperties()
Run Code Online (Sandbox Code Playgroud)

这给了我0个属性.

显然这不会起作用,因为类foo中没有属性.

c#

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

C#错误基本功能

我的功能有问题

public class PS3
{
    public static void restoreAllClassesNames(string A, string B, string C/*, string A1, string B1, string C1, string A2, string B2, string C2, string A3, string B3, string C3, string A4, string B4, string C4*/)
    {
        A = returnLine("a.txt", 0);
        B = returnLine("a.txt", 1);
        C = returnLine("a.txt", 2);
    }

    public static string returnLine(string fileName, int line)
    {
        StreamReader SR = new StreamReader(fileName);
        List<string> myList = new List<string>();
        string linePath;
        while ((linePath = SR.ReadLine()) != null)
            myList.Add(linePath);

        return …
Run Code Online (Sandbox Code Playgroud)

c#

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