-6

我正在尝试对 SQL Server CE 数据库中的记录进行排列,但每次都有不同的结果,尤其是对于 20 选择 5 = 15504

我在 C# 中创建了 5 个 for 循环,它们从一张表中读取日期

 for(int i=1;i<n;i++)
 {
         for (acv1=1; acv1 <= n; acv1++)
         { 
             string sql = "SELECT PId,DateOFVisit,RaId,VisitNum from  tblPatientVisit";
             visit1 = new ArrayList();

             if (id > 0)
             {
                    sql += "\n where PId= " + id + "AND VisitNum=" + acv1;
             }

                try
                {
                    SqlCeCommand cm1 = new SqlCeCommand(sql, f.conn);
                    SqlCeDataAdapter da1 = new SqlCeDataAdapter(cm1);

                    DataTable dt1 = new DataTable();
                    da1.Fill(dt1);

                    foreach (DataRow dr in dt1.Rows)
                    {
                        visit1.Add(dr["VisitNum"].ToString());
                        visit1.Add(dr["PId"].ToString());
                        visit1.Add(p_name);
                        visit1.Add(dr["DateOfVisit"].ToString());
                        visit1.Add(description(Convert.ToInt32(dr["RaId"])));
                        break;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                } 

     for(int x=i+1;x<n;x++)
     {
         // select statement here for x and stored it on array list b
         for(int y=x+1;y<n;y++)
         {
              // select statement here for y and stored it on array list c
              for(intz=y+1;z<n;z++)
              {
                  // select statement here for z  and stored it on array list d
                  for(int t=z+1;z<n;z++)
                  {
                       // select statement here for t and stored it on array list e
                       // in order to insert the array lists in order but i got different result than I expected
                  }
              }
          }
      }
}

我想得到这样的结果

1 2 3 4 5
1 2 3 4 6
1 2 3 4 7
1 2 3 4 8
1 2 3 4 9
1 2 3 4 10
1 2 3 4 11
1 2 3 4 12
1 2 3 4 13

直到

16 17 18 19 20

我从上面的代码中得到了什么

16 2 4 6 10 

编辑 :

我有 20 条记录tblACV,我想读取这条记录并对记录进行排列并将它们再次存储到另一个表中

4

1 回答 1

0

我不确定这是否是您真正想要的,但这会给出您所期望的数字:

    int n = 20;
    for ( int i = 4; i < n; i++) {
        for ( int j = 0; j < 4; j ++ ) {
            System.out.print(j + 1);
        }
        System.out.println(i + 1);
    }
于 2012-11-09T16:16:37.947 回答