我是LINQ的新手,但我想知道是否可以使用LINQ从以下布局转移数据:
CustID | OrderDate | Qty
1 | 1/1/2008 | 100
2 | 1/2/2008 | 200
1 | 2/2/2008 | 350
2 | 2/28/2008 | 221
1 | 3/12/2008 | 250
2 | 3/15/2008 | 2150
Run Code Online (Sandbox Code Playgroud)
进入这样的事情:
CustID | Jan- 2008 | Feb- 2008 | Mar - 2008 |
1 | 100 | 350 | 250
2 | 200 | 221 | 2150
Run Code Online (Sandbox Code Playgroud) 在Visual Studio 2012中使用数据库项目时,在添加或编辑表时,VS默认为"设计视图"窗格.虽然您可以在分屏模式下工作,但T-SQL窗格默认为底部窗格.
由于我更喜欢直接使用T-SQL而不是设计器,因此我不断切换到使T-SQL窗格成为最顶层的编辑器以便使用该对象.不幸的是,VS不记得这个偏好,因此我每次使用表时都必须更改以使T-SQL窗格显示在顶部而不是设计器窗格下方.
我已经查看工具 - >选项下是否有设置来控制此行为,但到目前为止,我一直无法找到这样做的设置.我也对该主题进行了一些谷歌搜索,但没有找到任何有用的特殊情况.
这对我来说比其他任何事情都更令人烦恼,但是当我发现自己不断切换窗格时,我想知道是否有人知道某个设置,无论是在VS内还是注册表或其他配置文件都会迫使VS记住我的偏好或者默认使用Designer窗格顶部的T-SQL窗格?
我有一个要求,我认为我有一个解决方案,但我会很感激输入,以防我错过了什么或让自己失败了.
要求
在新库(使用C#)中实现一些新的业务逻辑,通过事件报告其状态.该库将从现有的VBA解决方案中调用(但不能改变它).该库通过COM Interop暴露给VBA - 这里没有问题.
除了这个新库公开的"基础"功能之外,我还需要允许基本功能被"自定义"功能取代.
基本和自定义功能都将实现相同的接口,但由于各种原因,每个接口的内部私有方法都会有所不同.
在VBA中
我需要能够调用基本库或自定义库(以及将来实现相同接口的其他自定义库).如果不是要求响应并显示来自库的消息,我可以使用Late Binding在运行时实例化对象.但是,由于我需要响应库引发的事件,因此WithEvents
在VBA中声明变量时需要使用关键字.
如果我只需要支持基础库,我可以执行以下操作:
Private WithEvents Processor As MyDefault.RuleEngine
Public Sub Execute(StartDate As Date, EndDate As Date, SomeOtherParms As String)
Set Processor = New MyDefault.RuleEngine
Processor.Execute StartDate, EndDate, SomeOtherParms
End Sub
Private Sub Processor_OnProgressUpdate(ByVal percentComplete As Double)
'Show the progress on the UI to the user
End Sub
Run Code Online (Sandbox Code Playgroud)
由于我要支持这个库的定制实现(其中有一些关于我现在知道了,别人说我还不知道),我会想用后期绑定来处理这种情况.
但是,WithEvents不能与Late Binding一起使用,尽管我可能偶然发现了一种解决方法.
在我的场景中,我将始终引用基础实现.它只能在特定的配置环境下,其中基本功能将被自定义实现替换.
由于基本和自定义库共享相同的接口,因此我在概念验证中使用以下代码:
Private WithEvents Processor As MyDefault.RuleEngine
Public Sub Execute(StartDate As Date, EndDate …
Run Code Online (Sandbox Code Playgroud) 我正在考虑用 C#(当前遗留的 VB6 代码)重写我们应用程序的一部分。我开始使用的模块负责将数据从各种系统导入我们的数据库。每年大约有 5-6 次,一个新客户要求我们为他们使用的系统编写一个新的导入。目前,这要求我们为添加到应用程序的每个新导入选项发布新版本的软件。
重写的目标之一是使应用程序支持插件。每个新的导入都可以成为一个单独的程序集,宿主应用程序将识别该程序集并允许最终用户与之交互。这有望在一定程度上简化生活,因为我们可以简单地将新程序集放入目录中,并让主(主机)应用程序识别和使用它。
我正在努力解决的问题之一与我们目前支持的导入选项之间的差异有关。在某些情况下,我们实际上让用户指向一个目录并将目录中的所有文件读入我们的系统。在其他情况下,我们允许它们指向单个文件并导入其内容。此外,某些导入具有用户应用的日期范围限制,而其他导入则没有。
我的问题是,我如何设计应用程序,以便在我们构建和支持的导入之间具有一定的灵活性,同时实现一个通用接口,使主机应用程序能够轻松识别插件和选项每个都暴露给用户?
我有一个小应用程序,它引用了Microsoft.SqlServer.Smo程序集(因此我可以向用户显示它们可以连接的服务器和数据库的列表).
我的应用程序最初引用了Microsoft.SqlServer.Smo和Microsoft.SqlServer.ConnectionInfo.事情在我的开发盒上按预期工作.
当我在测试机器上安装应用程序时,我收到了System.IO.FileNotFoundException.消息的详细信息包括以下内容: 无法加载文件或程序集Microsoft.SqlServer.SmoEnum
除了上面提到的那些之外,我最终通过引用以下程序集解决了这个问题:
任何人都可以确认我确实需要在我的应用程序中包含这些附加程序集(并因此将它们安装在用户的计算机上),即使应用程序在我的开发盒上构建正常而没有引用它们吗?