小编RBa*_*ung的帖子

在字符串上构建表达式等于

下面的代码适用于StartsWith,Contains但是当我尝试时,Equals我得到了这个异常:类型'System.String'上的多个方法'Equals'与提供的参数兼容.

要恢复,CreatePredicate可以构建3种类型的谓词,但只有Equals不起作用:

  • AList.Where(x => x.MyField.StartsWith("ValueToSearch")); //OK
  • AList.Where(x => x.MyField.Contains("ValueToSearch")); //OK
  • AList.Where(x => x.MyField.Equals("ValueToSearch")); //Not OK

..

public enum TypeSearch
        {
            StartsWith = 1,
            Contains = 2,
            Equals = 3
        }

    private static Expression<Func<T, bool>> CreatePredicate<T>(string member, object value, TypeSearch type)
    {
        var p = System.Linq.Expressions.Expression.Parameter(typeof(T));
        System.Linq.Expressions.Expression body = p;
        foreach (var subMember in member.Split('.'))
        {
            body = System.Linq.Expressions.Expression.PropertyOrField(body, subMember);
        }

        var res = System.Linq.Expressions.Expression.Lambda<Func<T, bool>>(
                System.Linq.Expressions.Expression.Call(
                    System.Linq.Expressions.Expression.Call(
                        body,
                        "ToUpper", null), …
Run Code Online (Sandbox Code Playgroud)

.net c# expression c#-4.0

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

如何在sql server 2008中显示非公共行?

我正在使用sql server 2008.我有三个表tableA,tableB和表C.在表A中,我有两列,一个是Employeeid,另一个是Projectid.在表B中,我有两列,一列是employeeid,另一列是Employeename.在表C中,我有两列,一列是projectid,另一列是项目名称.

我使用以下查询来显示tableA和表B中的非公共行(不匹配的Employeeid)

   SELECT A.EmployeeID FROM A 
   EXCEPT
   SELECT B.EmployeeID FROM B
Run Code Online (Sandbox Code Playgroud)

除了Employeeid之外,我还希望显示projectname.即)我需要这样的:

    Employeeid|projectname
    1         |ABC
    2         |XYZ
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何使用sql server 2008做到这一点?

sql sql-server-2008

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

在数据库中启用快照隔离所需的用户权限是什么?

我有一个用户在数据库上拥有db_datareader,db_datawriter权限.我想将隔离级别设置为用户可以访问的DB.我的用户需要具有哪些权限才能设置这些权限.使用的数据库:SQL SERVER 2008

database isolation-level sql-server-2008

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

SQL Server:为什么这些查询会返回不同的结果集?

查询1 =从ITEMS i中选择前5名i.item_id

查询2 =从ITEMS i中选择前5名i.item_id,i.category_id

即使我删除了前5个子句,它们仍会返回不同的行.

如果我运行"从ITEMS i中选择前5个i.*",这将返回一个完全不同的结果集!

t-sql sql-server top-n

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

如何优化此功能

嗨,我创建了这个功能,用于将游戏世界分成块.每个块大小为32块.此公式计算给定世界坐标的给定块编号的起始坐标.它运作良好,但我认为可以优化它,但我不知道.重要的是公式与负数一起使用.

    static int wrld2chnk(int wrld)
    {
        if (wrld % 32 != 0)
        {
            if (wrld < 0)
                wrld -= (32 + wrld % 32);
            else
                wrld -= wrld % 32;
        }
        return wrld;
    }
Run Code Online (Sandbox Code Playgroud)

//这些是可用于验证结果的示例值.每个rpw中的第一个值是方法输入,第二个是输出:

    (0, 0);
    (31, 0);
    (32, 32);
    (33, 32);
    (-1, -32);
    (-31, -32);
    (-32, -32);
    (-33, -64);
    (-34, -64);
    (-64, -64);
    (-70, -96);
Run Code Online (Sandbox Code Playgroud)

math optimization integer

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

LINQ to Entities无法识别方法Double Round(Double,Int32,System.MidpointRounding)方法

我在Linqer尝试了下面的LINQ查询它工作正常,但是当我尝试使用C#时,它给出了以下错误

from IHeal_Mnt_Tickets in iHealEntities.iHeal_Mnt_Tickets
    where
        Tickets.Active == 1 &&
        Tickets.MntID == 1 &&
        Tickets.InsertedOn >= fromdate && 
        Mnt_Tickets.InsertedOn <= todate &&
        (new string[] { "Resolved", "Assigned" }).Contains(Tickets.status)
        group Tickets by new {
            Tickets.Instance
        } into g
            select new {
              Instance = g.Key.Summus_Instance,
              Assigned = (Int64?)g.Count(p => p.iHealID != null),
              resolved = (System.Int64?)g.Sum(p => (p.status == "Resolved" ? 1 : 0)),
              domain = (System.Int64?)g.Sum(p => (p.status == "Assigned" ? 1 : 0)),
              iHeal_Closure = (Decimal?)Math.Round((Double)(Double)g.Sum(p => (p.iHeal_Cur_status == "Resolved" ? …
Run Code Online (Sandbox Code Playgroud)

linq double rounding linqer

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

更新SQL数据,合并列

我的表看起来像这样:

Name | Maths | Science | Social
-----+-------+---------+-------    
ABC    NULL      A+      NULL
ABC     B       NULL     NULL 
ABC    NULL     NULL      A
XYZ     A       NULL     NULL
XYZ    NULL      B       NULL
Run Code Online (Sandbox Code Playgroud)

情况是每个教师给出的成绩,并以上述格式存储在表格中.学生ABC已经参加了所有的论文并且他的表现有成绩,学生XYZ只出现数学和科学所以他应该只有两个等级

现在我的结果应该是这样的

Name | Maths | Science | Social
-----+-------+---------+-------    
ABC     B        A+        A
XYZ     A        B        NULL 
Run Code Online (Sandbox Code Playgroud)

我试图用我所有可能的选项来检索这个.

sql database sql-server group-by

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

如何将2个外键分配给一行?

我有桌子rolesusers.该idroles是列的外键role的表users.
有两个角色:support和经理.如何指定为用户peter分配两个角色?

角色

| id | role    |
|----|---------|
| 1  | support |
| 2  | manager |
Run Code Online (Sandbox Code Playgroud)

用户

| id | user     | pass  | role (FK) |
|----|----------|-------|-----------|
| 1  | peter    | hash1 | 1,2       | <-- 2 foreign keys
| 2  | jennifer | hash2 | 2         |
Run Code Online (Sandbox Code Playgroud)

sql database sql-server sql-server-2008

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

C#:读取字符串的第一个字符,当char的unicode值> 65535时

我有一个C#方法需要检索字符串的第一个字符,并查看它是否存在于包含特定unicode字符的哈希集中(所有从右到左的字符).

所以我在做

var c = str[0];
Run Code Online (Sandbox Code Playgroud)

然后检查hashset.

问题是这个代码不适用于第一个char的代码点大于65535的字符串.

我实际创建了一个循环,遍历0到70,000之间的所有数字(最高RTL代码点大约68,000,所以我向上舍入),我从数字创建一个字节数组,并使用

Encoding.UTF32.GetString(intValue);
Run Code Online (Sandbox Code Playgroud)

用这个字符创建一个字符串.然后我将它传递给在HashSet中搜索的方法,并且该方法失败,因为它何时获得

str[0]
Run Code Online (Sandbox Code Playgroud)

这个价值永远不会是应有的.

我究竟做错了什么?

c# unicode utf-16 utf-32

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

sqlmetal.exe 在路径中找不到,即使它位于我的计算机上的正确路径中 - Linqer 程序

我正在尝试运行 Linqer(一个用于 sql -> linq 的程序),并在创建数据库连接并尝试生成“linq to sql 模型文件”时出现此错误。

错误:文件C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools/SqlMetal.exe not found

此处显示:在此输入图像描述

我的文件位于文件夹中:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools,

如何将其设置为使用 v10.0A 而不是 v8?

我已检查我已在 Visual Studio 上安装了所有 microsoft SDK。我该如何为此设置正确的路径?我将不胜感激任何帮助!谢谢

c# sdk path sqlmetal linqer

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