我有这个代码工作:
public IEnumerable<string> GetEmpNames()
{
var cmd = SqlCommand("select [EmpName] from [dbo].[Emp]");
using (var rdr = cmd.ExecuteReader())
while (rdr.Read())
yield return (string) rdr["EmpName"];
}
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有更好的(LINQish)方式,而不必诉诸收益率.(并且LINQ to SQL不是一个选项:))
有点奇怪的问题......当我重新启动机器后第一次启动我的.NET应用程序时,SQL Server查询真的很慢......当我暂停调试器时,我注意到它从查询中获取响应时挂起了.这仅在连接到远程SQL服务器(2008)时发生...如果我连接到本地计算机上的一个,那很好.此外,如果我重新启动应用程序,它甚至可以在远程SQL服务器上运行,并且后续运行也很好.唯一的问题是我重新启动计算机后第一次连接到远程SQL服务器.更重要的是,我甚至注意到与第三方应用程序(也是.NET)同样连接到远程SQL服务器的相同行为.
另一条信息......自从我将我的机器从XP升级到Win7(64位)以来,这才刚刚开始变化.此外,我的团队中升级到Win7的其他开发人员也看到了相同的行为(包括我们正在开发的应用程序和第三方.NET应用程序).
编辑:由于评论者的建议,也复制到https://serverfault.com/questions/100141/sql-server-queries-are-really-slow-only-on-first-run
我注意到,如果我在Visual Studio 2010中省略字符串常量的终止双引号,则没有错误甚至是警告,即
Dim foo as String = "hi
Run Code Online (Sandbox Code Playgroud)
但是,我们使用的持续集成工具标记错误:
error BC30648: String constants must end with a double quote.
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?在VB.Net中是否有一些语言规则使得终止双引号可选"有时"?Visual Studio中是否有一些设置会将其标记为错误,因此我可以避免以这种方式"破坏构建"?
我正在尝试编写一个正则表达式来识别单行文本,并将下划线(_)识别为行继续符.例如,"foo_ \nbar"应该被视为一行,因为"foo"以下划线结尾.我在尝试:
$txt = "foo_\nbar";
print "$&\n" if $txt =~ /.*(_\n.*)*/;
Run Code Online (Sandbox Code Playgroud)
但是,这仅打印:
foo_
Run Code Online (Sandbox Code Playgroud)
这似乎违反了Perl正则表达式中"最左边最长"的规则!
有趣的是,如果我删除正则表达式中的最后一个星(*),即:
$txt = "foo_\nbar";
print "$&\n" if $txt =~ /.*(_\n.*)/;
Run Code Online (Sandbox Code Playgroud)
它不打印:
foo_
bar
Run Code Online (Sandbox Code Playgroud)
但我需要这位明星认出"0或更多"的延续!
我究竟做错了什么?
我有一组用于播客的MP3文件,我希望每个人都有一个图像.我看过MP3 :: Tag,但目前尚不清楚如何做到这一点.
我们在多个环境(Dev,QA等)以及Production中部署了一个Web应用程序.具有讽刺意味的是,非生产基地有明显的标记,说明它是什么环境,但生产没有(出于显而易见的原因).危险在于开发人员会在生产中做一些事情,认为他们处于其他环境中.当然,自律是你的朋友(一旦你完成就关闭Prod)但是我们可以采取什么系统的措施来帮助我们,这不会影响Prod的用户体验吗?
我似乎记得有访问在Perl正则表达式(即括号匹配的方式$1,$2,$3等)的数组,但现在我似乎无法找到.无论是@+和@-是我的意思.
编辑:
我应该添加我想在s///(替换)中访问此数组,如下所示:
s/(foo)(bar)+(baz)/mySubst(@!)/e;
Run Code Online (Sandbox Code Playgroud)
(如果@!我正在寻找阵列)
是否有任何单一的魔术"前言"将使Perl脚本在Windows(作为批处理文件)或Linux(作为可执行文件)下运行,类似于那些使其在任何shell下工作的前导码?
现在我有一个站点,它使用Perl和Template Toolkit(使用Template模块)来处理需要计算和/或数据库访问的页面,但是使用其他页面的常规HTML文件.但是,我发现即使是"普通的HTML"页面,如果只是为了方便"包含"标准的页眉和页脚等,我也可以访问模板的优点.
以最少的中断对当前站点引入此方法的最简单方法是什么?(即我不想更改所有文件名和链接).
如果我想分发Perl脚本,那么无痛地安装用户系统中缺少的任何所需模块的最佳方法是什么?如果有一种方法甚至可以安装/升级Perl本身,如果它丢失或"太旧",则可获得额外的功劳.