我创建了一个自定义数据集,并将其传递给一个黑盒组件。数据集通常由5-6个表组成(由我指定唯一的名称)。该组件获取数据集,并基于表名构建一个下拉组合框。不过,我需要做的是更改数据集中表的顺序。我需要这样做,所以我首先在下拉列表中为用户提供适当的选择(基于他们在应用程序中的哪个部分)。因此,对于instance...if,它们在“A部分”中,这是下拉列表中显示的第一个表名。用户转到“F部分”,然后是列表first...so中显示的内容,依此类推。
当然,更多的代码密集型方法是只更改向dataset添加表的顺序。这是可行的,但我认为必须有一些方法来更优雅地用更少的代码来做到这一点。
我在C#中使用3.5框架。
发布于 2009-09-15 16:53:51
请记住,DataSets及其内容存储在堆中,因此您可以在DataSet中的多个位置拥有一个DataTable对象。
只需在位置0处创建一个虚拟DataTable的DataSet即可。然后,根据它们所在的任何部分,将相应的表放在位置零。您的表名将在您的DropDownBox中出现两次,一次是作为“默认”,另一次是在下面以正确的上下文和其他表的顺序出现。
public class ThisThing
{
private DataSet myDS = new DataSet();
//Populate your DataSet as normal
public DataSet ChangeLocation(int CurrentSectionNumber)
{
myDS.Table[0] = myDS.Table[CurrentSectionNumber]
}
}发布于 2009-09-15 17:10:11
我不确定强迫你的排序信息到DataSet的数据结构中是最直观的方法,你可以考虑传递一个有序的DataTable列表,而不是DataSet (或者除了它之外)。
https://stackoverflow.com/questions/1428231
复制相似问题