我有一个订单表(简化)
OrderId,
SalesPersonId,
SaleAmount,
CurrencyId,
...
Run Code Online (Sandbox Code Playgroud)
我试图在这张桌子上创建一个报告,我希望有类似的东西:
SalesPersonId TotalCAD TotalUSD
1 12,345.00 6,789.00
2 7,890.00 1,234.00
Run Code Online (Sandbox Code Playgroud)
我宁愿不做自我加入(也许我过早地进行优化,但这似乎效率低下)IE:
SELECT SalesPersonId, SUM(OrdersCAD.SaleAmount), SUM(OrderUSD.SaleAmount)
FROM Orders
LEFT JOIN Orders AS OrdersCAD ON Orders.OrderID AND Orders.CurrencyID = 1
LEFT JOIN Orders AS OrdersUSD ON Orders.OrderID AND Orders.CurrencyID = 2
Run Code Online (Sandbox Code Playgroud)
但是我想不出另一种方法可以做到这一点,任何想法?
我正在使用.Net微框架,因此StringBuilder不可用.
我已经看到来自apt专业人员的一些代码使用chars的Arraylist来连接和构建字符串,而不是+运算符.它们本质上构建了一个托管代码StringBuilder.
这有性能优势吗?假设连接数大于10且字符串长度也大于10.
我有一种情况,两个相同类型的对象有不同类型的父母.以下伪代码最好地解释了这种情况:
TypeA a1, a2;
TypeB b;
TypeC c;
a1.Parent = b;
a2.Parent = c;
Run Code Online (Sandbox Code Playgroud)
更复杂的是,TypeB和TypeC可能具有不同类型的主键,例如,以下断言可能为真:
Assert(b.Id is string && c.Id is int);
Run Code Online (Sandbox Code Playgroud)
我的问题是在SQL Server中定义这种父子关系的最佳方法是什么?我能想到的唯一解决方案是定义TypeA表有两列 - ParentId和ParentType,其中:
但是,当我基于sql_variant定义用户数据类型时,它将字段大小指定为固定的8016字节,这似乎很多.
必须有一个更好的方法.任何人?谢谢.
我有一个有一个字段的表.它有一个像(3,7,9,11,7,11)这样的值现在我想要一个查询,它将选择出现次数最少的值,如果存在最小出现次数,则使用最小的数字
在这种情况下,答案将是3.
是否可以在VB.NET打开对话框中选择整个文件夹?
我的意思是,打开对话框并浏览文件夹,然后选择整个文件夹而不是单个文件.
我正在用一个实体创建一个非常简单的EF4代码第一个项目.
public class Activity
{
public Guid Id { get; set; }
public string Description { get; set; }
public List<DateTime> DateDone { get; set; }
<snip>
public Activity()
{
if(DateDone==null)
DateDone = new List<DateTime>();
}
}
Run Code Online (Sandbox Code Playgroud)
我重建我的项目,然后运行MVC3应用程序并生成数据库(确认,我已添加和删除列),我的数据是种子(当我修改种子数据时它在屏幕上更改)
我能够:
var activity = db.Activities.Find(id);
activity.DateDone = DateTime.Now;
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但是数据没有保存.我检查了数据库,因为只有一个表(Activity),它有所有相应的字段.我希望它应该有第二个表,ActivityDateDone有两个字段,ActivityGuid和DateDone.
我在做这项工作时缺少什么?
我有一个验证数据的IF语句.
基本上看起来像这样:
Dim s As String = Nothing
If s Is Nothing Or s.Length = 0 Then
Console.WriteLine("Please enter a value")
End If
Console.Read()
Run Code Online (Sandbox Code Playgroud)
我想检查一下是否先没有,因为如果我这样写,它会抛出一个NullReferenceException.
我想过像这样重写它:
If s Is Nothing Then
Console.WriteLine("Please enter a value")
ElseIf s.Length = 0 Then
Console.WriteLine("Please enter a value")
End If
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我会得到两次相同的错误消息,我相信我的意图不太明确.
我也尝试在s Is Nothing子句周围抛出括号,但它不起作用.
如果对象什么都没有,然后测试它的属性,是否有优雅的测试?
我试图从服务器打开一个文件
我现在有
Dim attachedFilePath As String = "\\myserver\myshare\test.txt"
File.Open(attachedFilePath, FileMode.Open, FileAccess.Read, FileShare.Read)
Run Code Online (Sandbox Code Playgroud)
这不会打开文件.
但是,如果我将路径更改为本地,则没有问题.
Dim attachedFilePath As String = "c:\...\test.txt"
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法从远程存储打开文件?
我正在学习 Fluent NHibernate,这个问题来自那个项目。
我有一个基类和一个基接口:
public abstract class Base : IBase
{
public virtual Guid Id { get; set; }
public virtual bool IsValid()
{
return false;
}
}
public interface IBase
{
Guid Id { get; set; }
bool IsValid();
}
Run Code Online (Sandbox Code Playgroud)
我从以下继承了所有其他域类:
public class Item:Base, IItem
{
public virtual string Name { get; set; }
public override bool IsValid()
{
<snip>
}
<snip>
}
public interface IItem: IBase
{
string Name { get; set; }
<snip>
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将所有项目的列表绑定到 winforms Combobox …
我有一个包含几个单选按钮的div.这些显示/隐藏文本框.
<p>Some text</p>
<div>
<div>
<input id="show" name="radioGroup" type="radio" value="1" /><label for="show">Show</label> -
<input id="hide" name="radioGroup" type="radio" value="0" /><label for="hide">Hide</label>
</div>
<div class="myTextBox">
<input type='text'>
</div>
</div>
<p>Some text</p>?
Run Code Online (Sandbox Code Playgroud)
当我显示/隐藏时,.myTextBox文本会突然出现几个像素.这是由于文本框上的填充和边距.
没有删除这些设置(填充/边距)有没有办法消除CSS凹凸?
请参阅jsFiddle上的示例http://jsfiddle.net/nTJZN/1/
c# ×3
sql ×3
sql-server ×3
vb.net ×3
.net ×2
winforms ×2
c#-3.0 ×1
code-first ×1
css ×1
data-binding ×1
file-io ×1
if-statement ×1
interface ×1
sql-variant ×1