当我执行以下...
EXEC 'DROP TABLE bkp_anish_test'
Run Code Online (Sandbox Code Playgroud)
('DROP TABLE bkp_anish_test'是一个动态构建的SQL查询)
我收到了以下错误
找不到存储过程'DROP TABLE bkp_anish_test'.
我正在寻找一个可以在C#应用程序中使用的公式解释器.它需要能够解释这样的字符串:
max(1+2, 4) * x
Run Code Online (Sandbox Code Playgroud)
我发现编写一个快速的公式解释器(codeproject.com)几乎可以满足我的需要,但它不允许具有多个参数的函数.我可以添加它的功能,但我只是想知道这样的事情是否已经存在.
谢谢
在VB.NET上我可以做这样的事情来写出缓存中的所有密钥:
Dim oc As HttpContext = HttpContext.Current
For Each c As Object In oc.Cache
oc.Response.Write(c.Key.ToString())
Next
Run Code Online (Sandbox Code Playgroud)
尽管.Key没有出现在Intellisense中,但代码运行得很好.
我如何在c#中做同样的事情?
HttpContext oc = HttpContext.Current;
foreach (object c in oc.Cache)
{
oc.Response.Write(c.key.ToString());
}
Run Code Online (Sandbox Code Playgroud)
它不喜欢.key.位.我在这里不知所措.有任何想法如何以这种方式访问密钥?
我有一个布局包含ScrollViewer在其中我需要绘制一条水平虚线,延伸到容器的整个宽度.我管理的最接近的是以下内容
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<StackPanel>
<Button Width="400" Height="50" VerticalAlignment="Top" Margin="10" />
<Line HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Stroke="Black"
X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"
StrokeDashArray="2 2" StrokeThickness="1" />
</StackPanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

这几乎可以工作,但是一旦容器(在我的情况下是一个窗口)被放大,当容器的尺寸向下缩小时,线不会缩回到适当的尺寸.在我上下水平调整窗口大小之后,下面是同一窗口的屏幕截图.

请注意,线条虚线的事实很重要,因为这意味着涉及拉伸线条的解决方案不起作用(短划线显示为拉伸).
我知道这是因为X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}"绑定(通过设计,行总是在可滚动区域中最宽的东西,所以当我向下调整可滚动区域的窗口时,该行定义了可滚动区域的宽度),但是我不能想一个解决方案.
我该如何解决这个问题?
使用ViewportWidth不起作用的屏幕截图

我有一个应用程序,它以基于Xml的格式保存文档(想想word文档) - 目前从xsd文件生成的C#类用于读取/写入文档格式,直到最近我必须更改格式该文件.我担心的是后向兼容性,因为我的应用程序的未来版本 需要能够读取所有以前版本保存的文档,理想情况下我还希望我的应用程序的旧版本能够优雅地处理阅读未来版本的应用程序保存的文档.
例如,假设我更改了我的文档的模式以在某处添加(可选的)额外元素,那么我的应用程序的旧版本将忽略额外的元素并且不会出现问题:
<doc>
<!-- Existing document -->
<myElement>Hello World!</myElement>
</doc>
Run Code Online (Sandbox Code Playgroud)
但是,如果进行了重大更改(例如,将属性更改为元素或元素集合),那么我的应用程序的过去版本应该忽略此元素(如果它是可选的),或者通知用户他们正在尝试请阅读使用我的应用程序的较新版本保存的文档.此外,这使我头疼,因为我的应用程序的所有未来版本需要完全单独的代码才能阅读两个不同的文档.
这种变化的一个例子是以下xml:
<doc>
<!-- Existing document -->
<someElement contents="12" />
</doc>
Run Code Online (Sandbox Code Playgroud)
改为:
<doc>
<!-- Existing document -->
<someElement>
<contents>12</contents>
<contents>13</contents>
</someElement>
</doc>
Run Code Online (Sandbox Code Playgroud)
为了防止将来出现支持问题,我想提出一个合适的策略来处理我将来可能做出的更改,以便我现在发布的应用程序版本能够应对这些变化.未来:
另外,我假设我所做的所有改变都可以分为"喙变化"和"不间断的变化"这两类,我已经非常松散地工作了所有这些,但我并不完全相信这是一个安全的假设制作.
请注意,我非常宽松地使用术语"文档" - 内容根本不像文档!
感谢您提供给我的任何建议.
我想学习装配,并且可能编写我自己的简单汇编程序(我最近阅读了一篇关于如何创建操作系统的有趣文章,并且很快意识到对程序集的某种熟悉会在这里帮助我很多).
麻烦的是,尽管我确信在汇编语言/机器代码上找到文章和指南没有问题,但我倾向于通过实践来学习,而且我真的很想去执行我的代码.我想我有两个选择:
第二种选择对我来说听起来更好,因为它可以保护我免于犯下愚蠢的错误,并且可能更像我在编写操作系统时所处的环境,但我不确定如何做.
我有一个嵌入了以下清单的程序集:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)
在我的一台机器上,这个组件不起作用(组件无法加载).在依赖walker中打开它给我以下错误消息:
Error: The Side-by-Side configuration information for "SomeAssembly.dll" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).
Run Code Online (Sandbox Code Playgroud)
相同的程序集在另一台机器上工作正常,并且我没有得到依赖walker的错误.
至于我可以工作出了问题是由于第一台机器缺少某种(例如MSVCR可再发行)的依赖,但是我已经检查和微软的Visual C++ 2005可再发行组件安装罚款在两台机器上.
我该如何找出遗漏的依赖是什么?
我注意到的唯一事情是工作机器上的WinSxS目录有一个额外的条目:
x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_473666fd
Run Code Online (Sandbox Code Playgroud) 我正在尝试调试一个相当复杂的存储过程,它连接多个tabls(10-11).我看到,对于树的一部分,估计的行数与实际行数大不相同 - 在最差的SQL服务器估计将返回1行,而实际上返回55,000行!
我想弄清楚为什么会这样 - 我的所有统计数据都是最新的,我在几个表上用FULLSCAN更新了统计数据.我没有使用任何用户定义的函数或表变量.据我所知,SQL服务器应该能够准确估计将返回多少行,但它会继续选择一个计划,以便它执行数万次RDI查找(当它只期望执行1次时)或2).
我该怎么做才能尝试理解为什么估计的行数超出这么多?
更新:所以看一下这个计划,我发现了一个特别令人怀疑的节点 - 它使用以下预定表在表上扫描:
status <> 5
AND [type] = 1
OR [type] = 2
Run Code Online (Sandbox Code Playgroud)
这个谓词返回整个表(630行 - 表扫描本身它不是性能不佳的来源)但是SQL服务器的估计行数只有37个.然后SQL服务器继续用RDI做几个嵌套循环查找,索引扫描和索引搜索.这可能是我大量错误计算的根源吗?如何让它估计更合理的行数?
我试图将我从asmx服务中获取的一些JSON反序列化为对象列表.类中的所有字段都匹配JSON中的字段,JSON回来有效,但我得到了看似神秘的错误:
值不能为空.参数名称:类型.
在我的任何对象中都没有名为type的参数.谁看过这个吗?
这是抛出错误的代码.
System.Web.Script.Serialization.JavaScriptSerializer serr = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Rejection> l = serr.Deserialize<List<Rejection>>(json);
Run Code Online (Sandbox Code Playgroud)
json是一个先前声明的字符串,并返回有效的json,匹配我班级中的字段.您要反序列化的类是否必须与json中的__type属性匹配?
当C#6到达时,我刚刚引用了Microsoft.Net.Compilers NuGet包,并且TFS版本的C#6功能立即开始工作,而无需在构建机器上安装其他依赖项.
现在C#7在这里是否有一个等效的NuGet包可以做同样的事情?(或者这不是推荐采用C#7的方式吗?)
Microsoft.Net.Compilers包的描述确实说它"导致使用包中包含的特定版本的C#[...]编译器构建项目",但是我找不到相应的C#编译器版本适用于给定的NuGet包.我已经尝试添加最新的稳定版本(1.3.2),但是C#7的功能没有编译(而且这个软件包大概还要6个月左右,所以我真的没想到它会工作)
c# ×3
asp.net ×2
sql-server ×2
.net ×1
asp.net-ajax ×1
assembly ×1
c#-7.0 ×1
emulation ×1
exec ×1
expression ×1
formula ×1
interpreter ×1
layout ×1
line ×1
msvcrt ×1
schema ×1
side-by-side ×1
sql ×1
vb.net-to-c# ×1
wpf ×1
xml ×1
xmldocument ×1
xsd ×1