如何检查数据行中是否存在列?
我正在构建数据表来组织一些我已经从数据库中撤回的数据.根据每行中的数据类型,我需要创建一个具有不同列的数据表.然后,稍后,我想检查并查看我正在查看的数据表是否有某个列.
我知道我可以捕获异常并以这种方式处理它,但我很好奇datarow对象上是否有属性或方法可以为我执行此操作?
这是我如何通过捕获异常来做到这一点:
public static String CheckEmptyDataRowItem(DataRow row, String rowName, String nullValue)
{
try
{
return row[rowName].ToString();
}
catch (System.ArgumentException)
{
return nullValue;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为liferay开发一个portlet.
如何访问当前登录用户的用户名和密码(以及其他数据生命周期)?
我还希望能够在用户更改密码时执行一些代码.
对于静态代码分析工具,有必要了解给定Delphi项目的所有有效源路径,这些路径在项目级别和全局IDE配置中定义.
是否有可以收集此类项目信息的Delphi库?
据我所知,Delphi IDE的注册表设置可以在不同的地方,以支持多种配置.但是对于IDE注册表位置和项目文件的给定组合,应该可以收集源路径.
编辑:另一种解决方案是使用--depends开关.这将导致dcc32.exe写入一个".d"文件,其中包含项目的所有dcu文件名(以及所有依赖项),包括路径名.但是,文件列表包含已编译的单元,因此它不是原始问题的正确解决方案.
我正在尝试使用WCF实现彗星式服务器推送到ajax Web应用程序.
在我的WCF服务中,我实现了一个WaitForEvents方法,该方法调用Monitor.Wait来挂起线程,直到新数据到达.此时,监视器发出脉冲,并且该方法返回关闭彗星样式请求的新数据.
发生这种情况时会再次发出请求.
目前,这工作正常,但我注意到WCF需要为每个连接的用户创建一个新线程.这可能是因为在数据进入之前线程无法返回到线程池,因此每个连接的用户都需要一个新线程.
我想通过让一个线程服务多个连接来使这个实现更有效.如果我要使用套接字,可以通过保持套接字打开并首先将线程返回到线程池来完成.当新数据到达时,它将由另一个线程传递,我们可以将新数据直接写入套接字并关闭它.
有谁知道如何通过WCF完成这项工作?
我一直在看"Push-Style Streaming" http://msdn.microsoft.com/en-us/library/bb472551.aspx,他们提到"WCF实现了一个"拉"模型,其中应用程序代码(该服务) )返回Stream的一个实例,并依赖于较低级别的基础架构从该流中提取数据并将其写入网络." 但是我找不到这个网站的任何例子.
提前谢谢了!
我目前使用JMX以下列方式获得总线程CPU时间:
private long calculateTotalThreadCpuTime(ThreadMXBean thread) {
long totalTime = 0l;
for (ThreadInfo threadInfo : thread.dumpAllThreads(false, false))
totalTime += thread.getThreadCpuTime(threadInfo.getThreadId());
return totalTime;
}
Run Code Online (Sandbox Code Playgroud)
由于ThreadMXBean实际上是一个远程代理,性能是可怕的,这个实际方法调用的大小为秒.
有更快的方法吗?
更新:我正在使用它进行性能监控.测量结果是"挂钟"时间和JProfiler,显示我花费大约85%的时间用于此方法.我确实有一些其他MXBean调用(运行时,内存,GC),但它们便宜得多.很可能是因为每次呼叫thread.getThreadCpuTime都是远程呼叫.
更新2:显示性能问题的JProfiler屏幕截图.

如何在JavaScript中执行以下操作?
将"1","2","3"连接成"123"
将"123"转换为123
添加123 + 100 = 223
隐藏223成"223"
在html输入框中为自动完成功能实现服务器端组件的快速有效方法是什么?
我正在编写一个服务,在我们的Web界面的主搜索框中自动完成用户查询,完成显示在ajax驱动的下拉列表中.我们运行查询的数据只是我们系统知道的大型概念表,大致与维基百科页面标题集相匹配.对于该服务,显然速度是最重要的,因为网页的响应性对于用户体验是重要的.
当前实现只是将所有概念加载到有序集合中的内存中,并对用户击键执行简单的log(n)查找.然后使用尾部提供超出最接近匹配的附加匹配.该解决方案的问题在于它无法扩展.它目前正在运行VM堆空间限制(我设置-Xmx2g,这是我们可以在32位计算机上推送的最多),这阻止我们扩展我们的概念表或添加更多功能.在具有更多内存的计算机上切换到64位VM不是一个直接的选择.
我一直犹豫是否开始研究基于磁盘的解决方案,因为我担心磁盘搜索时间会影响性能.是否存在可以让我更好地扩展的解决方案,无论是完全在内存中还是在一些快速磁盘支持的实现中?
编辑:
@Gandalf:对于我们的用例,重要的是自动完成是全面的,而不仅仅是对用户的额外帮助.至于我们正在完成的内容,它是概念类型对的列表.例如,可能的条目是[("Microsoft","Software Company"),("Jeff Atwood","Programmer"),("StackOverflow.com","Website")].一旦用户从自动完成列表中选择一个项目,我们就会使用Lucene进行完整搜索,但我还不确定Lucene是否可以自动完成自动完成.
@Glen:这里没有使用数据库.当我在谈论表时,我只是指数据的结构化表示.
@Jason Day:我对这个问题的原始实现是使用Trie,但由于需要大量的对象引用,因此内存膨胀实际上比排序集更差.我将阅读三元搜索树,看它是否有用.
似乎xpath中所有丰富的函数都可以执行"if".但是,我的引擎一直坚持"没有这样的功能",我几乎没有在网上找到任何文档(我发现了一些可疑的来源,但他们的语法不起作用)
我需要从字符串的末尾删除':'(如果存在),所以我想这样做:
if (fn:ends-with(//div [@id='head']/text(),': '))
then (fn:substring-before(//div [@id='head']/text(),': ') )
else (//div [@id='head']/text())
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我正在使用Ruby on Rails编写一个Ajax请求表单,使用如下所示的collection_select标记:
<%= collection_select("Jobs", "clearance", @allClearances, "clearance", "clearance", {:prompt => "Select a Clearance"} )%>
Run Code Online (Sandbox Code Playgroud)
然后,Ruby使用id = "Jobs_clearance"和构建HTML选择标记name = "Jobs[clearance]"
我想将参数发送到我的控制器,如下所示:
class JobsController < ApplicationController
def foo
@clearance = params[:Jobs[clearance]]
end
Run Code Online (Sandbox Code Playgroud)
不幸的是,Ruby只读取":Jobs"符号而不是":Jobs[clearance]"
有没有办法逃脱它[]的?反斜杠不起作用.
出于好奇,有没有人知道用于编程Roomba的平台和编程语言?我不是在谈论售后市场工具包,而是用于在工厂实施算法的内容?
java ×2
performance ×2
ado.net ×1
autocomplete ×1
c# ×1
comet ×1
datarow ×1
datatable ×1
delphi ×1
delphi-2009 ×1
escaping ×1
if-statement ×1
javascript ×1
jmx ×1
liferay ×1
memory ×1
numbers ×1
path ×1
portlet ×1
robotics ×1
ruby ×1
select ×1
string ×1
xpath ×1