小编Fro*_*840的帖子

如何在另一个表中选择没有匹配条目的行?

我正在对数据库应用程序进行一些维护工作,并且我发现,欢乐的乐趣,即使来自一个表的值正在使用外键的样式,表上没有外键约束.

我正在尝试在这些列上添加FK约束,但我发现,因为表中的错误数据已经完全加载了以前的错误,这些错误已经被天真地纠正过,我需要找到没有的行.匹配其他表,然后删除它们.

我在网上找到了一些这种查询的例子,但它们似乎都提供了例子而不是解释,我不明白为什么它们起作用.

有人可以向我解释如何构建一个查询,该查询返回在另一个表中没有匹配的所有行,以及它正在做什么,以便我可以自己进行这些查询,而不是为这个混乱中的每个表运行到SO 没有FK约束?

sql foreign-keys

291
推荐指数
5
解决办法
36万
查看次数

'ItemsSource ="{Binding}"是什么意思?

我正在尝试通过揭开由我之前从事这项工作的人所写的一个坦率的噩梦项目来学习WPF.很抱歉,如果我的一些问题几乎是家庭作业级别,但我正在尝试解决现有的XAML所做的事情,对其背后的概念理解不足......

无论如何,我有一个ListView作为其定义的一部分:

<ListView 
    DataContext="{StaticResource XMLFileGroups}"
    ItemContainerStyle="{StaticResource XMLItemStyle}"
    ItemsSource="{Binding}">
Run Code Online (Sandbox Code Playgroud)

现在,我可以了解"DataContext"和"ItemContainerStyle"行正在做什么; 它们似乎分别引用了对现有列表进行排序的方法,以及定义了ListView的一些可视行为的结构.

破坏我的是ItemsSource列为"{Binding}"的事实.所有这些都告诉我,有一些数据绑定到位,但我不明白该行如何可能有意义,但删除它会阻止任何数据显示.

有人可以了解这里发生的事情,或者我应该在哪里寻找实际的绑定定义?在这里,我只是不明白我所看到的.

.net wpf xaml

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

"无效对象名称:dbo.etc"错误的根本原因?

我正在一个相当大的项目上做一些维护编程,这个项目是由现在离开公司的人开始的...

我刚刚备份了公司的一个数据库,然后将其重新附加到我们的测试服务器上.这似乎工作得很好.

然后我通过该程序的常规登录程序,该部分似乎也可以工作.

但是,一旦我在程序中找到需要执行存储过程的点,我就会收到一个错误告诉我Invalid object name 'Informix.dbo.customer'.

在原始数据库上运行相同的函数工作正常,并返回我期望看到的数据.

我发现的类似错误的解释似乎是指Schemas,但事情变得有些奇怪.原始数据库显然没有任何Schema; 在它的"Security"文件夹中,它只有一个包含dbo的"Users"文件夹和一个"Roles"文件夹,其中包含"Database Roles"文件夹,包含常用的db_owner等内容,以及一个名为"Application Roles"的空文件夹".

备份和还原的数据库上的Security文件夹中包含各种垃圾.三个用户除了dbo,一个"Schemas"文件夹,"Certificates"文件夹,两个加密密钥文件夹......我无法删除任何这些.

由于我对SQL登录系统的理解有限,我登录的用户从此随机垃圾集合中获取非dbo权限,因此被拒绝访问dbo拥有的数据库部分.

根据我自己的理解,问题的核心在于抛出这些Invalid object name错误是什么?而对于实际问题,我该怎么做才能纠正这种情况,并且实际上让我正在使用的程序在测试数据库上的工作方式与在实际数据库中的工作方式相同?

sql sql-server

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

用于Windows API调用的AppDomain.GetCurrentThreadID vs Thread.ManagedThreadID?

我正在尝试创建一个钩子来监视鼠标光标的当前位置.没什么重要的,我只需要在界面设计中计算一些像素,并想学习如何创建一个钩子,所以我决定采用一种艰难的方式而不是一种理智的方式.

我找到了声明以下函数的示例代码:

 <DllImport("User32.dll", CharSet:=CharSet.Auto, _
 CallingConvention:=CallingConvention.StdCall)> _
 Public Overloads Shared Function SetWindowsHookEx _
      (ByVal idHook As Integer, ByVal HookProc As CallBack, _
       ByVal hInstance As IntPtr, ByVal wParam As Integer) As Integer
End Function
Run Code Online (Sandbox Code Playgroud)

调用该函数时,使用以下代码:

        hHook = SetWindowsHookEx(WH_MOUSE, _
                                 hookproc, _
                                 IntPtr.Zero, _
                                 AppDomain.GetCurrentThreadId())
Run Code Online (Sandbox Code Playgroud)

但是Appdomain.GetCurrentThreadID生成警告:"'公共共享函数GetCurrentThreadId()As Integer'已过时:'AppDomain.GetCurrentThreadId已被弃用,因为当托管线程在光纤(又称轻量级线程)上运行时,它不提供稳定的Id.要获取托管线程的稳定标识符,请使用Thread上的ManagedThreadId属性."

我尝试过使用ManagedThreadID,但这不起作用.返回的线程ID似乎是线程的逻辑线程ID,因为它在.net运行时运行,而不是Win32线程标识符.

调用函数ith AppDomain.GetCurrentThreadID有效,但我真的想为我的线程提供一个"稳定的标识符".

有人可以向我解释是否可以在此上下文中使用ManagedThreadID(我假设不是),如果没有,我需要避免的事情是为了阻止AppDomain.CurrentThreadID变得"不稳定"?

干杯

.net vb.net winapi

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

一些Visual Studio项目抱怨临时文件丢失,因此无法打开.错误代码&H80070003

我在终端服务器上运行Visual Studio 2010,并且在一段时间内问题相对较少.今天早上我开了我的电脑并且在英国的长周末,以下问题似乎已经发展.

我有一堆项目(但不是我的所有项目,而不是给定解决方案中的所有项目)抱怨某个特定文件(计算机上不存在)无法打开,因此这些项目将会不再编译了.这是错误:

Error   31  Unable to open module file
'C:\Users\[username]\AppData\Local\Temp\2\.NETFramework,Version=v4.0.AssemblyAttributes.vb':
System Error &H80070003&
Run Code Online (Sandbox Code Playgroud)

我可以简单地将文件复制到该目录中并完成它,我很确定它会起作用,但我很感激有任何见解,任何人都可以告诉我为什么会出现这个问题,以及我可以做些什么来避免它发生在将来.

编辑:好的,现在事情已经达到了一个奇怪的全新水平.我重新启动了服务器,我得到了相同的错误消息,只是现在它要求的文件存在,并且可以在Visual Studio中打开而没有任何问题.

然而,IDE的另一部分仍然坚持它无法打开模块文件......

编辑2:无法删除该文件,因为它声称在另一个程序中打开,但我已经注销并再次登录,并且不应该有任何访问它.

编辑3:因为在他的回答下面有一道评论,我在这里提到Jared建议删除有问题的解决方案的SUO文件(不是特别与任何问题项目有关的文件,奇怪)是什么解决了这,最终.

.net vb.net visual-studio-2010 visual-studio

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

重命名Visual Studio解决方案配置?

我有一个VB项目,我正在尝试配置三个构建配置.

我已经成功创建了构建配置,但我确定我使用的名称不够描述,所以我去了Configuration Manager- > <Edit...>- > Rename并重命名它们.

这在配置管理器中重命名了配置.

然后我去做一些条件编译测试,#If CONFIG =但失败了.

更深入地检查,结果返回的值CONFIG是原始名称而不是新名称.

检查My Project- > Compile- > Configuration我可以看到该ComboBox中显示的名称也是旧名称.

因此,即使我在Configuration Manager中"重命名"了我的配置,它们也不会在所有级别上重命名.

我可以通过使用他们想要的名称重新创建这些配置来解决这个问题,但这就像我能想到的那样,是一个解决方案.是否有一些重命名配置实际工作的方法,或者这只是MS打算这样......"工作"的方式?

.net vb.net visual-studio-2010

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

防止WPF ComboBox中的文本自动完成?

我正在使用Diederik Krols的这个过滤的WPF ComboBox控件.

我发现它几乎适用于所有情况,但是输入集合中任何给定项的第一个字母会导致ComboBox自动将其text属性设置为表示该项的字符串,因此会终止所有进一步的过滤.当发生这种情况时,我甚至无法退出结果,因为按下退格键会导致循环再次发生.

经过多次头疼,盯着墙壁,像白痴一样流口水,我终于发现,如果ComboBox已设置为AutoCompleteMode.Append,这实际上是预期的行为.我需要将其设置为AutoCompleteMode.None.

WPF ComboBox似乎没有AutoCompleteMode属性.

有没有办法解决这个问题,实现AutoCompleteMode.None行为?

.net vb.net wpf combobox

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

尝试调试发布版本时重新启用警告?

启动/调试代码时,会出现一个警告对话框,通知您当前处于发布版本并且代码不会调试/断点等。正确。

我只是不小心选择了第四个“始终调试(不要再问)”选项,但我想继续收到警告。

我在哪里可以重置此设置?

visual-studio visual-studio-2017

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

文件似乎在被SmtpClient作为附件发送后保持打开状态.我该如何删除文件?

我有一些函数生成的文件定义为:

Public Function GeneratePDF(exportFileName As String) As String
    Dim GeneratePath As String = FileSystem.CombinePath(standardDirectory, exportFileName  & DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") & ".pdf")
    If GenerateFile(GeneratePath) Then
        Return GeneratePath
    End If
    Return String.Empty
End Function
Run Code Online (Sandbox Code Playgroud)

立即打印这些文件,文件自动保存到目录中; 文件本身不供实际软件用户使用.我对文件加时间戳,以便将它们唯一标识用于审计目的.

我现在已经收到要求将这些文件的一些外部邮件发送到公司,并且有人抱怨当前的文件名不是用户友好的.

因此,我尝试将生成的文件复制到临时目录,使用更友好的名称,通过电子邮件发送友好文件,然后删除它,使我的审计跟踪保持原样,如下所示:

Public Function GeneratePDF(exportFileName As String) As String
    Dim GeneratePath As String = FileSystem.CombinePath(standardDirectory, exportFileName  & DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") & ".pdf")
    If GenerateFile(GeneratePath) Then

        Dim friendlyFilePath As String = FileSystem.CombinePath(standardDirectory, GetFriendlyFileName(GeneratePath))
        System.IO.File.Copy(GeneratePath, friendlyFilePath)

        Dim mailMsg As New System.Net.Mail.MailMessage
        Dim smtp As New System.Net.Mail.SmtpClient
        [Vast amount of code, which attaches …
Run Code Online (Sandbox Code Playgroud)

.net vb.net email smtpclient

7
推荐指数
2
解决办法
5019
查看次数

“每个 GROUP BY 表达式必须至少包含一列不是外部引用。” 当 GROUP BY 包含常量时报告。为什么?

有许多与“每个GROUP BY表达式必须包含至少一列不是外部引用”相关的问题。错误,子句中包含常量值GROUP BY通常是错误的原因。
我实际上正在从允许子句中使用常量的数据库转换一些 SQL GROUP BY,所以我想知道两件事:

  • 为什么 MS SQL Server 不允许在GROUP BY子句中使用常量?

  • 为什么在子句中放入常量GROUP BY会产生错误,而不是“不要在GROUP BY子句中放入常量,白痴。” 错误?

这是发生错误的一个简单示例。以下代码在第三条SELECT语句上崩溃,并显示不协调的错误消息。

DECLARE @demo TABLE
( groupCol1 int
, groupCol2 int);

INSERT INTO @demo VALUES(1,1);
INSERT INTO @demo VALUES(1,1);
INSERT INTO @demo VALUES(2,1);
INSERT INTO @demo VALUES(1,2);
INSERT INTO @demo VALUES(1,2);
INSERT INTO @demo VALUES(2,2);
INSERT INTO @demo VALUES(3,1);
INSERT INTO @demo VALUES(3,1);
INSERT INTO @demo VALUES(1,3);
INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

sql-server group-by

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