我很难弄清楚如何提出这个问题,所以我将直接进入示例代码。假设我有这些表:
create table Item
(
ItemId int identity(1,1),
Name nvarchar(256)
)
create table ItemSale
(
ItemSaleId int identity(1,1),
ItemId int,
Price decimal,
CategoryId tinyint
)
Run Code Online (Sandbox Code Playgroud)
我想要检索的是ItemSale不在给定CategoryId. 至少对我来说,复杂的是,如果ItemSale给定的记录存在Item,我不想看到任何记录Item。
所以如果我有这个数据:
insert into Item(Name)
select N'Widget' union all
select N'Foo' union all
select N'Buzz'
insert into ItemSale(ItemId, Price, CategoryId)
select 1, 9.95, 1 union all
select 1, 19.95, 2 union all
select 3, 99.99, 3
Run Code Online (Sandbox Code Playgroud)
而CategoryId我要过滤掉的是 1,那么我不想看到ItemId1(“小部件”)的任何记录。因此,使用该示例数据,我只会看到ID 为 3的 …
我正在尝试在C#2.0中实现IEnumerable(和ICollection)的自定义集合类中对项目进行分块.比方说,例如,我一次只需要1000个项目,而我的收藏中有3005个项目.我有一个工作解决方案,我在下面演示,但它似乎很原始,我认为必须有一个更好的方法来做到这一点.
这就是我所拥有的(例如,我使用的是C#3.0的Enumerable和var,只需在您的脑海中用自定义类替换这些引用):
var items = Enumerable.Range(0, 3005).ToList();
int count = items.Count();
int currentCount = 0, limit = 0, iteration = 1;
List<int> temp = new List<int>();
while (currentCount < count)
{
limit = count - currentCount;
if (limit > 1000)
{
limit = 1000 * iteration;
}
else
{
limit += 1000 * (iteration - 1);
}
for (int i = currentCount; i < limit; i++)
{
temp.Add(items[i]);
}
//do something with temp
currentCount += temp.Count;
iteration++;
temp.Clear();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以在C#2.0中建议更优雅的方式吗?我知道这个项目是否是过去5年我可以使用Linq(如此 …
我正在尝试通过熟悉 node.js(我的职业是 .NET 开发人员)来扩大我的视野,但我对我认为是一个简单的 POST 示例的问题感到困惑。我确实有使用 jQuery 的经验,所以在我正在构建的这个示例网站中,node.js 对我来说是相对未知的。
node.JS 服务器代码:
var express = require('express');
var app = express();
app.configure(function() {
app.use(express.bodyParser());
app.use(app.router);
app.use(express.logger());
});
app.use(express.static(__dirname + '/public/PRB_Presentation'));
app.post('/GetPage', function(request, response){
console.log(request.body.pageNumber);
response.send(request.body.pageNumber);
});
var port = 80;
app.listen(port);
console.log('Listening on port: ' + port);
Run Code Online (Sandbox Code Playgroud)
我的客户端 jQuery 逻辑:
function getPage(pageNumber){
$.ajax({
url: '/GetPage',
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify({ pageNumber: pageNumber })
}).done(function(data, textStatus, jqXHR) {
console.log("Success: " + data);
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log("Error: " + …Run Code Online (Sandbox Code Playgroud) 这是一个"学术"问题,而不是影响我目前正在以官方身份工作的任何问题,但我想这里有人可以向我解释这个问题.
我与玩弄CancellationToken于LinqPAD(我提到这个细节让人们不熟悉它知道,Dump()基本上是短手Console.WriteLine()),我是想了这样一个场景,我有主线程睡眠,而我的任务完成.这是在运行几个取消任务的变体之后完成的,然后才能完成与IsCanceled属性一起玩并验证Result在取消时无法访问该属性.这是我的虚拟LinqPAD程序的样子:
void Main()
{
var cts = new CancellationTokenSource();
var task = Task.Factory.StartNew(() => Test())
.ContinueWith(t => t.Result, cts.Token)
.ContinueWith(t =>
{
if (t.IsCanceled)
{
"Cancelled".Dump();
}
else if (t.IsCompleted)
{
"Completed".Dump();
t.Result.Sum (r => r).Dump();
}
});
//sleep long enough to make sure the Task completes
Thread.Sleep(6000);
}
private IEnumerable<int> Test()
{
foreach(var i in Enumerable.Range(0, 10))
{
yield return i;
Task.Delay(500).Wait();
}
}
Run Code Online (Sandbox Code Playgroud)
这种行为 - …
我有一个很想解决的问题,可以通过使用CSS来解决,而不必诉诸于静态调整标签大小(但可能无法实现)。
我每行有两个标签,一个用于显示“标题”,另一个用于显示关联的“值”。这是我想要的样子:

这类似于在输入旁边对齐表格中的标签,但是我希望每行的第二个元素左对齐,而不是第一个元素右对齐。我尝试修改该问题的可接受答案,并设置“标题”标签的宽度,但这对我的输出没有影响。如前所述,无论如何我都不希望对宽度进行硬编码,但我希望在尝试找到可以解决较大“ title”值的良好的长期解决方案之前取得一些成果。
这是我当前的CSS(类应该是不言自明的):
.propertyTitle {
text-transform: uppercase;
width: 300px;/*Why doesn't this have any effect?*/
}
.propertyValue {
text-align: left;
}
Run Code Online (Sandbox Code Playgroud)
而我目前的HTML:
<div>
<div>
<label class="propertyTitle">Hello:</label>
<label class="propertyValue">World</label>
</div>
<div>
<label class="propertyTitle">Goodbye:</label>
<label class="propertyValue">To All of the People in the World</label>
</div>
<div>
<label class="propertyTitle">I Want:</label>
<label class="propertyValue">These labels to line up</label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果可以简化HTML,也可以对其进行修改。为了遵循最佳实践,我宁愿不使用表格来完成这项工作。
这是一个jsFiddle,显示了我现在所拥有的,我想念的是什么?理想情况下,此解决方案适用于IE8 +和Firefox,因此不幸的是不鼓励使用HTML5和CSS3元素。
编辑
要重申后两个答案(都解决了我的问题),有没有一种方法,而无需为我的“标题”标签硬编码宽度?
.net ×1
c# ×1
c#-2.0 ×1
c#-5.0 ×1
collections ×1
css ×1
html ×1
javascript ×1
jquery ×1
node.js ×1
sql ×1
sql-server ×1
t-sql ×1