小编Equ*_*lsk的帖子

根据CASE,有条件地从3个表之间的LEFT JOIN返回值

首先,为长篇大论道歉.它看起来真的比它看起来更简单;-)

我正在尝试做一些我认为在概念上很简单的事情,而且我相信我已经完成了大部分工作,但最后一部分是我无法实现而没有错误,我无法弄清楚如何修复.

我有三个相关的表.

订单:
每一行都是一个具有唯一ID的订单,永远不会有重复.

+---------+---------+
| OrderID | Name    |
+---------+---------+
| 1       | Order 1 |
| 2       | Order 2 |
| 3       | Order 3 |
+---------+---------+
Run Code Online (Sandbox Code Playgroud)

订单明细:
关系表,其中每一行都是订单上的产品系列.

+---------+-----------+
| OrderID | ProductID |
+---------+-----------+
| 1       | a         |
| 2       | b         |
| 2       | c         |
| 3       | a         |
| 3       | b         |
| 3       | b         |
+---------+-----------+
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有些订单只有一个产品(1),有些产品会有多个产品(2),有些产品会有重复的产品(3).

产品
每一行都是具有唯一ID的产品,永远不会有重复.

+-----------+-------------+
| ProductID | Description …
Run Code Online (Sandbox Code Playgroud)

sql case left-join sql-server-2008

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

使用 st、nd、rd、th 设置日期时间日期格式

我正在 SSRS 中创建一个报告,顶部有一个标题,其中包含“上次刷新”占位符,它将显示报告上次运行的时间。

我在占位符中的功能很简单:

=Format(Now, "dddd dd MMMM yyyy hh:mm tt")
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

2015 年 9 月 22 日星期一 09:46

我想用英文后缀 st、nd、rd 和 th 适当地格式化日期值。

我找不到用于此目的的内置函数,并且到目前为止我所查看的指南似乎描述了如何在 SQL 端使用我不想要的存储过程来执行此操作。我正在寻找报告端解决方案

我以为我可以摆脱一个丑陋的嵌套IIF,但它出错了,尽管没有给我任何语法错误(空格只是为了可读性)。

=Format(Now, "dddd " + 

IIF(DAY(Now) = "1", "1st", 
IIF(DAY(Now) = "21","21st",
IIF(DAY(Now) = "31","31st",
IIF(DAY(Now) = "2","2nd",
IIF(DAY(Now) = "22","22nd",
IIF(DAY(Now) = "3","3rd",
IIF(DAY(Now) = "23","23rd",
DAY(Now) + "th"))))))) 

+ " MMMM yyyy hh:mm tt")
Run Code Online (Sandbox Code Playgroud)

在任何其他语言中,我很久以前就已经解决了这个问题,但 SSRS 对我来说是新的,所以我不确定如何进行简单的字符串操作。令人沮丧!

感谢您给我的任何帮助或指示。

编辑:我读过有关将 VB 代码插入报告中的内容,这可以解决我的问题,但我一定要疯了,因为我看不到在哪里添加它。指南说要进入“属性”>“代码”部分,但我看不到。

format datetime reporting-services ssrs-2008

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

如何在加载网页时让CefSharp隐藏垂直和水平滚动条?

我在C#WPF应用程序中使用CefSharp 57.
我想在任何给定的网页上隐藏垂直和水平滚动条.

我一直无法找到直接用CefSharp做到这一点的方法.
它似乎没有类似于ScrollBarsEnabled我习惯使用本机WinForms浏览器的属性.

我想我可能会在页面渲染后注入一些CSS/JS来将body溢出设置为隐藏但这没有任何效果.

private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs args)
{
    if (args.Frame.IsMain)
    {
        // Shows an alert after page is loaded so it definitely works
        args
            .Browser
            .MainFrame
            .ExecuteJavaScriptAsync("alert('HELLO!');

        // Scrollbars are still visible after this fires
        args
            .Browser
            .MainFrame
            .ExecuteJavaScriptAsync(
            "(function() { document.body.style.overflow = 'hidden'; });");
    }
}
Run Code Online (Sandbox Code Playgroud)

我看看是否有办法自己绘制滚动条并使它们透明,但我无法找到方法来做到这一点.

有没有办法使用CefSharp隐藏任何给定页面上的垂直和水平滚动条?

c# wpf cefsharp

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

为什么解构不能在左侧混合声明和表达式

我有以下代码:

public static (int a, int b) f12()
{
    return (1, 2);
}

public static void test()
{
    int a;
    (a, int b) = f12(); //here is the error
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,出现错误:

解构操作不能在左侧混合声明和表达式

我不明白为什么。有什么建议么?

c# tuples

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

从Webdings字体创建系统托盘图标

我正在尝试创建一个非常简单的系统托盘图标,它只是一个带有白色边框的动态彩色圆圈.为此,我们使用Webdings字体.Webdings中的"n"只是一个简单的圆圈.

我目前正在做的几乎就在那里,但是在某些PC上(但不是全部)它最终会在它周围形成一个波涛汹涌的黑色边框:

在此输入图像描述

这是我得到的:

protected static Icon GetTrayIconFromCache(Color statusColor)
{
    Bitmap bmp = new Bitmap(16,16);                            
    Graphics circleGraphic = Graphics.FromImage(bmp);
    circleGraphic.DrawString("n", new Font("Webdings", 12F, FontStyle.Regular), Brushes.White, -3f, -2f);
    circleGraphic.DrawString("n", new Font("Webdings", 9F, FontStyle.Regular), new SolidBrush(statusColor), 0f, -1f);
    Icon ico = Icon.FromHandle((bmp).GetHicon());
    return ico;
}
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我都无法摆脱圆圈外面那些丑陋的黑点.它们没有出现在每个人身上......一些开发人员看不到它,看起来很干净.我们还没有弄清楚那些看起来不错的PC和不合适的PC之间的共性.

但是......有更好的方法吗?

.net c# windows icons

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

为什么静态类的构造函数似乎永远不会被调用?

我正在用C#编写一个Console应用程序.当应用程序运行时,我需要它在做任何工作之前检查一些事情,例如是否存在某些设置和目录.我有一个存储的静态类Logging.cs,我已经将检查放在这个类的构造函数中,但它似乎永远不会被调用.

这是一个非常基本的例子:

Program.cs中

internal class Program
{
    private static void Main(string[] args)
    {
        Console.WriteLine("Started application");
        Console.ReadKey(); // Stops the application exiting so I can read the output
    }
}
Run Code Online (Sandbox Code Playgroud)

Logging.cs

internal static class Logging
{
    static Logging()
    {
        // The checks are all here, for the demo we'll just use WriteLine
        Console.WriteLine("Logging constructor");
    }
}
Run Code Online (Sandbox Code Playgroud)

预期的控制台输出:

已启动应用程序
日志记录构造函数< - 此行永远不会出现

我知道我可以在LoggingDoStartupChecks调用的类中创建一个静态方法,并Main在Program.cs中调用它,但是我想知道我在这里做错了什么.也许答案是创建方法并调用它但我想先了解为什么上面的例子是错误的.

c# console static

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

触发('click')vs触发('click')[0]

我无法区分trigger('click')vs trigger('click')[0],它们之间有什么区别吗?

jquery

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

如何确定随机生成的数字是否是150的倍数?

我正在创建一个基本的神秘盒子程序,使用随机生成的数字来确定他们得到的稀有物品.但是,如果他们得到的数字是150的倍数,我希望他们得到一个特定的项目.我不知道如何确定随机数是否是150的倍数.

else if (num is in 150 times tables)
{
    code...
}
Run Code Online (Sandbox Code Playgroud)

c# if-statement multiplication

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

字符串到DateTime转换不起作用

我正在将一个字符串转换为DateTime变量

 DateTime selecteddatetest = Convert.ToDateTime("09/21/2017");
Run Code Online (Sandbox Code Playgroud)

这在我的生产服务器中运行良好,但是当我在本地开发机器中运行此代码时,会抛出错误

System.FormatException:'字符串未被识别为有效的DateTime.'

谁能指出我在这里缺少什么?

c# datetime

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