我发现UNPIVOT能够自动排除具有NULL值的字段.但是,CROSS APPLY-VALUES方法无法做到这一点.有谁知道如何自动从CROSS APPLY-VALUES中排除NULL值字段?假设,如果字段Field3和Field4包含NULL值,则将其排除.
SELECT
E.FieldA,
E.FieldB,
E.FieldC,
DBParam.Display,
DBParam.Value
INTO DBParam
FROM
Map_Data AS E
CROSS APPLY (VALUES (Field1, 'Field1'),
(Field2, 'Field2'),
(Field3, 'Field3'),
(Field4, 'Field4')
) AS DBParam(Value, Display)
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现“MVVM 推荐”方式,通过 DialogService 处理应用程序中的多个视图/窗口。但是,我在显示子视图后实现关闭父视图时遇到了困难。到目前为止,这是我的实现。WPF MVVM 处理这种情况的最佳策略是什么?
DialogService.cs(我尝试使其通用,以便它可以显示和关闭任何窗口)
public class DialogService : IDialogService
{
/// <summary>
/// Closes the specified window screen
/// </summary>
/// <param name="dialogWindow"></param>
public void CloseDialog(Window dialogWindow)
{
if ( dialogWindow != null )
dialogWindow.Close ( );
}
/// <summary>
/// Shows the specified window screen
/// </summary>
/// <param name="dialogWindow"></param>
public void ShowDialog(Window dialogWindow)
{
if ( dialogWindow != null )
dialogWindow.ShowDialog ( );
}
}
Run Code Online (Sandbox Code Playgroud)
显示子视图的视图模型是SelectPackageViewModel.cs
public SelectPackageViewModel(IPackageDataService packageDataService, IDialogService dialogService)
{
this.packageDataService = packageDataService; …Run Code Online (Sandbox Code Playgroud) 这就是我想要做的.基本上我有一些故意在表格中留空Staging_X并且稍后要更新.我想使用以下case条件更新这些列.我想在存储过程中实现它.
UPDATE Staging_X
SET Staging_X.[NoMaterial]
(SELECT (case
when ((([Up]+[Test])+[Mon])+[Down_percentage])*(1.68)=(0)
then (168) else [Lost]*(1.68)
end)
FROM Staging_X)
Run Code Online (Sandbox Code Playgroud) 我正在寻找减少此函数的代码行数的方法.任何帮助表示赞赏!
private bool CanSubmitPackage ( object obj )
{
// ---- Checks if the package contains any files to be submitted ----
if ( _selectedWorkspace.Package.Files != null )
{
if ( _selectedWorkspace.Package.Files.Count > 0 )
if ( _selectedWorkspace.Package.Platform != null || _selectedWorkspace.Package.Platform != "" )
if ( _selectedWorkspace.Package.PackagePath != null || _selectedWorkspace.Package.PackagePath != "" )
if ( _selectedWorkspace.Package.PackageSize != null || _selectedWorkspace.Package.PackageSize != "" )
if ( _selectedWorkspace.Package.SubmittedBy != null || _selectedWorkspace.Package.SubmittedBy != "" )
return true;
else
return false; …Run Code Online (Sandbox Code Playgroud)