我正在使用mssql并且在使用子查询时遇到问题.真正的查询非常复杂,但它具有与此相同的结构:
select
customerName,
customerId,
(
select count(*)
from Purchases
where Purchases.customerId=customerData.customerId
) as numberTransactions
from customerData
Run Code Online (Sandbox Code Playgroud)
我想要做的是按交易次数排序表,但是当我使用时
order by numberTransactions
Run Code Online (Sandbox Code Playgroud)
它告诉我没有这样的领域.是否有可能做到这一点?我应该使用某种特殊的关键字,例如this,或self?
可以说我正在调用一些我无法控制的Web服务方法.此方法需要很长时间才能运行,并且开发Web服务的任何人都不认为包含异步版本.
在C#/ winforms中为这种方法创建异步包装的最佳方法是什么?
目前我正在使用ThreadPool运行webservice方法,然后在webservice完成时调用事件.像这样的东西.
DoWorkAsync() {
Webservice.LongMethod()
WorkCompleteEvent()
}
Run Code Online (Sandbox Code Playgroud)
但是,这似乎并不理想.例如,如果我尝试从事件处理程序修改表单控件,我会收到一条警告,告知不要从其他线程执行此操作.
有没有人有任何其他建议来解决这个问题?
应用程序启动时,我的MainPage上加载的事件被调用两次.
页面的构造函数只获得一次,我很确定我也只是分配了一次事件处理程序.到底是怎么回事?
我刚开始用Objective-C编程,据我所知它只是部分支持方法重载,因为方法名称的生成方式(参见这个问题).
但是,我的问题是为什么我从未在任何例子中看到过它.下面的代码似乎工作正常,但我见过的任何一种例子,第二个init都会被命名initWithServerName或类似的东西,而不是利用重载.
-(id) init {
self = [super init];
return self;
}
// usually this would be called initWithName or something? but to me it
// seems easier this way because it reminds me of method overloading from C#.
-(id) init: (NSString*)newServerName {
self = [super init];
if(self) {
serverName = [[NSString alloc] initWithString:newServerName];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
这是什么原因?它是否会导致子类中的问题以这种方式命名方法?