小编mam*_*esh的帖子

工厂创建相同界面的不同对象

我有1个界面:

public interface ISummary
{
   int EventId {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

许多实现此接口的具体类:

public class EmployeeSummary : ISummary
{
   public int EventId {get; set;},
   public int TotalUniqueCount {get; set;}
   public int Location {get; set;}
}

public class CarSummary : ISummary
{
   public int EventId {get; set;}
   public int TotalMiles {get; set;}
   public int TotalHours {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

等等....

唯一的共享属性是EventId.有没有办法让1个工厂方法创建所有这些摘要对象?我想要1个入口点来决定要创建哪些对象.

所以类似于:

public ISummary CreateSummary(ConcreteObjectType with properties)
{
if EmployeeSummary
 --Call this method to create and return EmployeeSummary

if CarSummary …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns factory-pattern

5
推荐指数
1
解决办法
2859
查看次数

具有int属性的对象列表与Int的列表进行比较

我有2个清单.首先是具有int属性ID的对象列表.另一个是整数列表.

我需要比较这两个列表并将对象复制到一个新列表,其中只有基于ID的两个列表之间匹配的对象.现在我使用2个foreach循环如下:

var matched = new list<Cars>();
foreach(var car in cars)
foreach(var i in intList)
{
 if (car.id == i) 
  matched.Add(car);
}
Run Code Online (Sandbox Code Playgroud)

这看起来很慢,因为它多次迭代每个列表.有没有办法这样做而不使用像这样的2个foreach循环?

.net c# list

4
推荐指数
1
解决办法
66
查看次数

INNER JOIN最大的价值

我想知道是否有可能加入greates值.

所以举个例子

SELECT *
FROM Vehicle v
INNER JOIN VehicleCost vc ON v.VehicleWeight > vc.WeightFrom AND c.VehicleWeight < vc.WeightTo
Run Code Online (Sandbox Code Playgroud)

但是如果v.VehicleWeightTotal> v.VehicleWeight我想要在内连接上替换v.VehicleWeight.因此,这可能是每辆车的不同连接.

我如何在加入中进行检查?

样品:

tblVehicle
VehicleId  VehicleWeight VehicleWeightTotal 
1               12              15
2               1               8
3               16              20

tblVehicleCost
WeightFrom    WeightTo  Dollars
0               5         1
6               11        8
12              16        9 
17              20       15
Run Code Online (Sandbox Code Playgroud)

所以:

Vehicle 1 = 9
Vehicle 2 = 8
Vehicle 3 = 15
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

3
推荐指数
1
解决办法
121
查看次数

如何根据另一个表中的记录计数重复值

我有一个包含日期的表,表中可以有多个日期.例如

Date
'2011-01-01'
'2011-03-01'
'2011-06-01'
'2011-11-01'
'2011-12-01'
Run Code Online (Sandbox Code Playgroud)

我还有一张表中只有单位.永远不会有重复的单位.

Unit
1
2
3
4
5
6
Run Code Online (Sandbox Code Playgroud)

如何返回每个单元的所有日期.例如:

Unit           Date
1           '2011-01-01'
1           '2011-03-01'
1            '2011-06-01'
1            '2011-11-01'
1            '2011-12-01'
2           '2011-01-01'
2           '2011-03-01'
2            '2011-06-01'
2            '2011-11-01'
2            '2011-12-01'
Run Code Online (Sandbox Code Playgroud)

等等.....

sql t-sql sql-server sql-server-2005

3
推荐指数
1
解决办法
102
查看次数

将所有行推入单行和列

我有以下查询:

SELECT 
    '' + CONVERT(VARCHAR(MAX),c.ClientId) + ','
FROM [dbo].[tblClient] c
Run Code Online (Sandbox Code Playgroud)

这将返回17,000 +行.有没有办法让所有这些行返回1值?例如:

 6A7A24CD-061C-4653-9790-882D90F81E1D,0980722E-6E96-4498-B3BB-BFB4CA60EAC6,etc etc etc.
Run Code Online (Sandbox Code Playgroud)

我试图用它作为测试参数.

sql sql-server sql-server-2005

2
推荐指数
1
解决办法
1577
查看次数

如何通过脚本自动生成临时表列和数据类型

我经常在SQL中创建临时表,我正在研究一种为表定义自动生成列名和数据类型的方法,因此我不必每次都查看它们.

比如我运行:

SELECT CustomerID
  ClientID,
  FirstName
  LastName
INTO #Test
From dbo.Customer
Run Code Online (Sandbox Code Playgroud)

最初使用我需要的相应列和数据设置临时表.一旦我完成所有这些,我就回去并取出INTO语句并写下以下内容:

CREATE TABLE #Test
(
...
...
);
Run Code Online (Sandbox Code Playgroud)

我想找到一种方法来自初始创建临时表自动生成列名和数据类型.现在,因为我最初插入自动创建的临时表,我使用这个:

EXEC tempdb..sp_help '#Test';
Run Code Online (Sandbox Code Playgroud)

这给了我所需的一切,而不必查看所有的列数据类型,但我想知道是否有一种方法可以自动生成列名这样的东西.所以auto gen会产生:

CustomerID int,
ClientID int,
FirstName varchar(50),
LastName varchar(50)
Run Code Online (Sandbox Code Playgroud)

这将允许我将其复制并粘贴到我的create table语句中.

sql sql-server sql-server-2008

2
推荐指数
1
解决办法
9576
查看次数

从所有锚标记内删除图像标记

我有以下表格标题:

<table id="time" class="new_table" border="0" cellpadding="2">
    <thead>
        <tr>
            <th scope="col" rowspan="2" class="sortHead">
                <a href="#" id="unitSort">Unit</a>
            </th>
            <th colspan="2" id="startDateHead" class="sortHead">
                <a href="#" id="startDateSort">Start</a>
            </th>
            <th colspan="2" id="endDateHead" class="sortHead">
                <a href="#" id="endDateSort">End</a>
            </th>
            <th rowspan="2" class="sortHead">
                <a href="#" id="distanceSort">Distance (miles)</a>
            </th>
            <th rowspan="2" class="sortHead">
                <a href="#" id="locationSort">Location</a>
            </th>
            <th rowspan="2" class="sortHead">
                <a href="#" id="driverName">Driver Name</a>
            </th>
        </tr>
Run Code Online (Sandbox Code Playgroud)

我在用户点击按钮时动态添加和删除img标签.当它们在那里时,如何删除该表的a标签中的所有img标签?

我试过了:

$('#time th a').each(function() { $(this).remove('img'); });
Run Code Online (Sandbox Code Playgroud)

添加到标记的img元素的示例如下:

<a href="#" id="driverName">Driver Name<img id="test" src="test.png" width="10"></a>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

2
推荐指数
1
解决办法
307
查看次数

SQL CASE语句mutliple GUID =相同的值

我的案例陈述如下:

CASE id
  WHEN '9FDAC41CBF5ED6E3758' THEN 'Invalid' 
  WHEN '5EBF056B16E7593' THEN 'Invalid' 
  WHEN 'EEDC43399D10F44A19E293BB' THEN 'Invalid'
  WHEN '2322' THEN 'No'
  ELSE 'Yes'
END AS [Test]  
Run Code Online (Sandbox Code Playgroud)

是否可以将3 when子句放在1 when子句中,因为它们基本上返回相同的值?

sql

1
推荐指数
1
解决办法
420
查看次数

添加数字会保持返回NULL

我有2个临时表,我用数字值填充:

CREATE TABLE #Initial
(
[SalesTax] NUMERIC (20,4),
[Unit] VARCHAR(10)
);

INSERT INTO #Initial ([SalesTax],[Unit])
(
SELECT SUM(SalesTax), Unit
FROM Billing
GROUP BY Unit
);

CREATE TABLE #End
(
[SalesTax] NUMERIC (20,4),
[Unit] VARCHAR(10)
);

INSERT INTO #End([SalesTax],[Unit])
(
SELECT SUM(SalesTax), Unit
FROM BillingEnd
GROUP BY Unit
);
Run Code Online (Sandbox Code Playgroud)

然后,当我在另一个查询中选择它们时,我试图将这些值一起添加(此查询是一个非常简单的更大查询示例.必须像这样完成):

SELECT 
u.Unit,
i.SalesTax,
e.SalesTax,
(i.SalesTax+ e.SalesTax) AS SalesTaxFeeTotal
FROM tblUnit u
LEFT JOIN #Initial i ON u.Unit = i.Unit
LEFT JOIN #End e ON u.Unit = e.Unit
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当i.SalesTax和e.SalesTax列返回这些相同记录的值时,SalesTax列将返回NULL.

任一临时表中都没有NULL值.如果没有费用,则为0.00

为什么这些重新调整的空值?

sql sql-server

1
推荐指数
1
解决办法
254
查看次数

如何查找包含NULL的列的最大值并将其视为最大值

我有一个包含日期和NULL值的日期列表.我试图找出一种方法来找到MAX Date,per ID,或者如果有NULL值,则返回NULL.

例如:

ID    Date
1     2014-01-01
1     2014-02-01
1     2014-03-01
2     2014-02-01
2     NULL
3     NULL
4     2014-03-01
Run Code Online (Sandbox Code Playgroud)

所以我想要产生的是:

1 = 2014-03-01
2 = NULL
3 = NULL
4 = 2014-03-01
Run Code Online (Sandbox Code Playgroud)

截至目前我正在使用这样的东西:

NULLIF(MAX(COALESCE(n.[SentDate], '12/16/9997')),'12/16/9997') AS [MaxSentDate]
Run Code Online (Sandbox Code Playgroud)

我99%肯定没有人会约会12/16/9997,但我想提出一个合适的解决方案,而不是使用像这样的hackish.

sql sql-server sql-server-2008

1
推荐指数
1
解决办法
3720
查看次数