我有一个DataGridView,其数据源是BindingList.MyObj有一些可以为空的属性(比如int?和DateTime?)我想实现对绑定列表的排序,因此当用户点击列标题时,DataGridView可以对列进行排序.
经过一番挖掘,我发现并遵循了这个问题的答案(使用Business Objects进行DataGridView列排序).
我无法让这个解决方案适用于Nullable类型,因为它们没有实现IComparable.即使对于像String这样实现IComparable的类,当String具有空值时,ApplySortCore(...)也会失败.
这有解决方案吗?或者我是否必须为"Int32"实现包装类??
例如
public class Int32Comparable : IComparable
{
public int? Value { get; set; }
#region IComparable<int?> Members
public int CompareTo(object other)
{
// TODO: Implement logic here
return -1;
}
#endregion
}
Run Code Online (Sandbox Code Playgroud) 我不确定这是否可以做到,但情况如下。
我想把这个sql变成linq:
SELECT * FROM Department d
INNER JOIN Employee e ON e.DepartmentID = d.DepartmentID
Run Code Online (Sandbox Code Playgroud)
部门-员工是一对多的关系。
我创建了一个自定义对象,我想将结果填充到其中。
public class DepartmentSummary
{
public Department Department { get; set; }
public List<Employee> Employees {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我想出的 Linq 是
var result = from d in dba.Department
join e in dba.Employee d.DepartmentID equals e.DepartmentID into j1
select new DepartmentSummary
{
Department = d,
Employees = j1.ToList()
};
Run Code Online (Sandbox Code Playgroud)
我尝试了一下,但不起作用。有人能给我一些启发吗?我想在部门和员工之间执行内部联接。对于结果集中的每个部门,我想创建一个 DepartmentSummary 对象,该对象保存该部门以及属于该部门的员工列表。
Linq 是否为此提供了临时解决方案,或者我必须迭代结果集并手动创建 DepartmentSummary 列表?
谢谢,
编辑:看起来这对我有用
var result = from d in dba.Department …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Windows 窗体,它有一个名为 tabDocuments 的 TabControl。我遇到了这段代码,它从 TabControl 中删除所有页面。
for (int i = tabDocuments.TabPages.Count - 1; i > -1; i--) {
tabDocuments.TabPages[i].Dispose();
}
tabDocuments.TabPages.Clear();
Run Code Online (Sandbox Code Playgroud)
写这段代码的人已经离开一段时间了。我试图理解为什么代码在处理每个 tabPages 之后调用 Clear() (对我来说看起来没有必要)。谁能向我解释一下为什么吗?或者调用 Clear() 是额外的吗?
我要将一些数据从一个数据库转储到另一个数据库.我在用
set identity_insert MyTable on
GO
INSERT INTO MyTable SELECT * FROM sourceDB.dbo.MyTable
GO
set identity_insert MyTable off
Run Code Online (Sandbox Code Playgroud)
无论如何要让它工作?有30个表,将列名列表添加到insert语句将非常耗时.我正在使用SQL Server 2000.将在不久的将来升级到SQL Server 2008.
编辑:MyTable有一个标识列.