小编Sea*_*ley的帖子

如何在关系数据库中最好地存储数字列表?

我想在关系数据库中存储一个数字列表(基本上是数学术语中的一),特别是SQL Server 2005.

理想情况下,我希望它是给定表上的单个列,但我愿意听到任何解决方案.我需要存储的数据就像我说的那样,是一组数字.

  • 它不需要是顺序的(即间隙是正常的,正常的,典型的)
  • 范围是可能的(即1 - 4),但我想以这种方式显示它我可以使用快捷方式,如存储它
  • 它也可以是"全部",因此对于这种"无限"情况,必须保留至少一个值,最好是逻辑上
  • 数字列表不需要按顺序排列(即3,2,9,5),但最好也是完全合理的,它们将在插入之前进行排序,因为只有代码才会进行插入,而不是手动用户.不过,它可能不应该依赖或期望列表已经排序.
  • 一组数字应该可以轻松搜索到一个子集(见下文)
  • 所有数字都应该是不同的(没有欺骗),但这可以并且将在插入之前强制执行

此列用于存储该行适用的给定进程的所有"步骤编号".因此,每行可以以任何顺序,范围或顺序应用于一个或多个步骤.可能的最大步数(最大范围,基本上)在行与行之间是不同的,但我高度怀疑它们中的任何一个都会达到数百个,因此在99.9%的情况下,最大值不应超过20或30,而我如果有任何接近100的话,我会感到惊讶.每一行都保证最少有一个值(步骤)(即没有任何步骤适用于任何步骤没有意义),但我想象这就像设置列一样简单not null.

然而,它存储,我希望它很容易搜索.例如,我宁愿不必通过大量的箍来编写SQL查询来查找适用于"步骤3"的所有行.如果给定的行有几个适用的步骤(例如,2,3,7和8),则在步骤3搜索时匹配它应该不太困难.

此外,虽然我希望在查看原始数据时能够产生某种逻辑意义(对于任何需要在系统上工作的人,我不在后问,因此他们不必阅读厚文档弄清楚我的模糊编码),我愿意妥协.因此,将列表编码成可以被可靠解码的内容是可接受的.

如果这是一个骗局我道歉 - 我一直在谷歌搜索,但我怀疑我的这个问题不知道要搜索什么或如何短语或称之为找到我正在寻找的东西.

在更多的注释中,我想知道这不是关系数据库不足的领域之一.不幸的是,我在这里没有选择.我必须将它存储在SQL Server中.我担心,单独保存到文件或其他持久性数据存储是不可能的.

database-design types

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

如何强制刷新WCF服务的安全令牌?

我有一个WCF服务,需要由单独的WCF STS服务发出的安全令牌.这一切都只是花花公子.在我的应用程序中,我使用这样的服务:

MyServiceClient myService = new MyServiceClient();
myService.Open();
myService.DoStuff();
Run Code Online (Sandbox Code Playgroud)

调用STS服务获取令牌,令牌用于调用服务方法DoStuff.

但是,一旦初始握手结束,myService对象就会缓存令牌并重新使用它直到它到期为止.这是很好的行为,但是如何强制它刷新令牌呢?

myService.ClientCredentials.Invalidate(); // something like this?
Run Code Online (Sandbox Code Playgroud)

这样,如果我再次调用DoStuff(),它就会知道它需要再次像第一次那样再次进入STS.

我只是制作一个新的代理类对象,即myService = new MyServiceClient();?这有效,但它似乎是核弹解决方案.

或者,有没有办法只手动获取一个新令牌并替换当前的令牌,即myService.ClientCredentials.Renew();

如果我必须创建一个自定义ClientCredentials类来执行此操作,我将如何实现上面的示例方法?

wcf credentials wif

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

如何基于每个系统主题定义图标资源?

我有一个WPF 4.0应用程序,它在菜单命令之类的东西中使用了一些自定义的16x16图标.我想(现在)有两组图标,默认的Vista/7-ish和一些XP-ish.我想要的是让当前的操作系统确定使用哪些图标.

现在,我已经在主题资源字典(即Aero.NormalColor.xaml等)中定义了指向特定PNG资源的BitmapImage资源.

<!-- Aero.NormalColor.xaml -->
<BitmapImage x:Key="IconSave" UriSource="/MyWPFApp;component/Resources/Icons16/Aero/disk.png"/>

<!-- Luna.NormalColor.xaml -->
<BitmapImage x:Key="IconSave" UriSource="/MyWPFApp;component/Resources/Icons16/Luna/disk.png"/>
Run Code Online (Sandbox Code Playgroud)

在我的应用中想要显示图标的任何地方都将Image/Icon的source属性设置为StaticResource到其中一个BitmapImages.

<Image Source="{StaticResource IconSave}"/>
Run Code Online (Sandbox Code Playgroud)

我们的想法是,由于WPF根据当前的操作系统和主题自动加载主题词典,因此只会加载一组BitmapImage资源,并且图标会神奇地成为合适的图标.

但是,这不起作用,我在运行时遇到了可怕的"无法找到资源"异常.我的预感是,这是因为主题文件只搜索自定义控件,Image不是.

Blend 4对这些没有任何问题,但它已经定义了其特殊的DesignTimeResources.xaml文件,并在Aero.NormalColor.xaml上进行了合并.VS2010扼流圈,但它也没有使用像DesignData文件这样的东西,所以我并不感到惊讶.我目前还有一个单独的资源字典文件(MainSkin.xaml),它被合并到Application资源中.引用样式等在运行时可以正常工作.

我是在正确的轨道上,只是有一些轻微的错误?我是否需要做一些完全不同的事情才能获得理想的效果,如果有,那该怎么办?

wpf icons resourcedictionary

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

处理"繁重"数据时,WinForms UI响应能力

我正在修改Windows窗体以允许在UI保持响应的同时在后台加载数据.数据需要花费大量时间来检索和绑定.理想情况下,我会在后台执行这两项工作,但是我在后台应该做什么样的UI更新(如在主线程外部),这有些含糊不清.在后台显示数据检索和数据绑定的一个可靠示例将非常有用.

data-binding user-interface multithreading backgroundworker winforms

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

如何在完成后跟进Parallel.ForEach?

我想获取一组对象并在所有对象上运行例程.顺序无关紧要,它们都是独立的操作,所以我想我会称之为Parallel.ForEach集合.但是我希望在完成后跟进整个事情.

哪里ContinueWith相当于或过载的ForEach这需要另一个动作/任务就完成运行?我是否坚持轮询ParallelLoopResult.IsCompleted值,直到它回来真实?

ContinueWhenAll方法总是期望的任务的阵列.我是否应该将对象集合投射到每个新任务中?然后,我将如何同时并行地启动一系列任务?

这个问题是类似的,但我担心的是旧的3.5 TPL扩展.如果需要,我愿意接受任务并行库之外的解决方案.

.net .net-4.0 task-parallel-library

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

为什么我的Documents and Settings文件夹出现拒绝访问错误?

我正在编写一个获取所有目录和子目录的程序.我正在使用以下代码:

DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
{
    string[] directories = Directory.GetDirectories(drive.Name, "*", SearchOption.AllDirectories);
}
Run Code Online (Sandbox Code Playgroud)

但我得到一个例外,说"访问路径'C:\ Documents and Settings \'被拒绝."

我正在使用Windows 7,我在资源管理器中看不到C:\ Documents and Settings \文件夹.我启用了"显示隐藏文件和文件夹",甚至尝试直接键入路径,但它出现以下错误:"C:\ Documents and Settings无法访问.访问被拒绝."

为什么要Directory.GetDirectories()拉一个似乎不存在的目录?

.net c# directory file-io windows-7

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

Azure DevOps Pipeline NPM 安装任务失败并出现 node-gyp 构建错误

我正在尝试在 Azure DevOps 中构建 Azure Pipeline。问题是当管道运行时,npm 构建任务中发生错误。难道是package.json中有一些过时的包?或者说 npm 已经过时了?

\n

请参阅管道开始运行的教程中的步骤 4:\n https://learn.microsoft.com/en-us/learn/modules/create-a-build-pipeline/6-create-the-pipeline

\n

管道中构建任务的屏幕截图:

\n

在此输入图像描述

\n

原始日志:

\n
2021-12-03T00:13:53.4119601Z ##[section]Starting: Run npm install\n2021-12-03T00:13:53.4130006Z ==============================================================================\n2021-12-03T00:13:53.4130664Z Task         : npm\n2021-12-03T00:13:53.4144256Z Description  : Install and publish npm packages, or run an npm command. Supports npmjs.com and authenticated registries like Azure Artifacts.\n2021-12-03T00:13:53.4145177Z Version      : 1.187.0\n2021-12-03T00:13:53.4145620Z Author       : Microsoft Corporation\n2021-12-03T00:13:53.4146127Z Help         : https://learn.microsoft.com/azure/devops/pipelines/tasks/package/npm\n2021-12-03T00:13:53.4146868Z ==============================================================================\n2021-12-03T00:13:54.7198556Z [command]/usr/local/bin/npm --version\n2021-12-03T00:13:55.4151672Z 8.1.0\n2021-12-03T00:13:56.0808980Z [command]/usr/local/bin/npm config list\n2021-12-03T00:13:56.3808693Z ; "env" config from environment\n2021-12-03T00:13:56.3811792Z \n2021-12-03T00:13:56.3813271Z userconfig = "/home/vsts/work/1/npm/13.npmrc" \n2021-12-03T00:13:56.3814393Z \n2021-12-03T00:13:56.3815603Z ; node bin location …
Run Code Online (Sandbox Code Playgroud)

npm-install azure-devops azure-pipelines

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

如何检查TreeView中是否选择了一个项目(C#)

如何检查TreeView中是否选择了某个项目?在C#中

我想检查是否选择了任何内容,而不是特定项目

c# winforms

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

如何将32位RGBA图像转换为保留alpha的灰度

我想在代码和按需中将32位RGBA Image对象(最初是32位PNG)转换为32位灰度对应物.

我已经在这里阅读其他几个问题,以及很多在线文章.我已经尝试过使用ColorMatrix来做到这一点,但它似乎并没有很好地处理alpha.完全不透明灰度的像素完美无缺.任何部分透明的像素似乎都不能很好地转换,因为这些像素中仍然存在色彩.这足以引人注目.

我使用的ColorMatrix如下:

new System.Drawing.Imaging.ColorMatrix(new float[][]{
                    new float[] {0.299f, 0.299f, 0.299f, 0, 0},
                    new float[] {0.587f, 0.587f, 0.587f, 0, 0},
                    new float[] {0.114f, 0.114f, 0.114f, 0, 0},
                    new float[] {     0,      0,      0, 1, 0},
                    new float[] {     0,      0,      0, 0, 1}
                    });
Run Code Online (Sandbox Code Playgroud)

正如我所读到的,这是一个非常标准的NTSC加权矩阵.我随后使用它,Graphics.DrawImage但正如我所说,部分透明像素仍然是彩色的.我应该指出这是通过WinForms PictureBox在白色背景上显示Image对象.它可能只是PictureBox绘制图像和处理透明部分的方式吗?背景颜色不会影响它(颜色的色调肯定来自原始图像),但也许PictureBox没有正确地重绘透明像素?

我见过一些使用FormatConvertedBitmap和OpacityMask的方法.我没有尝试过,主要是因为我真的不想导入PresentationCore.dll(更不用说这意味着它不适用于.NET 2.0有限的应用程序).当然基本的System.Drawing.*东西可以做这个简单的程序吗?或不?

.net c# image image-processing image-conversion

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