0

大家好,我正在开发一个小型应用程序,所有问题都是随机出现的。

我使用默认random方法来获取随机数据,但它给出了两次重复的行。所以我需要将不同的行放入数据表中。

我正在使用以下方法来获取 rendom 记录...

 Random rDom = new Random();
 dtRandom = dt.Clone();
 int rw = 0;
 for (int ctr = 1; ctr <= dt.Rows.Count; ctr++)
 {
        rw = rDom.Next(1, dt.Rows.Count);
        dtRandom.ImportRow(dt.Rows[rw]);
 }
 dtRandom.AcceptChanges();

那么,我怎样才能从数据表中获得不同的记录?

4

2 回答 2

1

如您所知,随机数生成可能会多次生成相同的数字。如果存在唯一的代理键/主键,请在将其导入数据表之前检查导入行是否存在。否则,您可以使用这种方法从最终的 DataTable 中获取不同的值:

DataTable distinctTable = new DataView(dtRandom).ToTable(
  true, new string[] { "column1", "column2", "etc." });

来自http://msdn.microsoft.com/en-us/library/wec2b2e6.aspx

于 2013-01-31T05:09:40.193 回答
-3

您需要保留相同的Random对象。
将其作为静态成员放在您的静态方法之外

private static Random rand = new Random();

public static int rInt(int exclUB, int incLB = 0)
{
    int t = rand.Next(incLB, exclUB);
    return t;
}

细节

随机数生成 - 返回相同的数字

于 2013-01-31T04:31:26.370 回答