解决方案 »

  1.   

    Hash的顺序就是hash的顺序,不是你插入的顺序。
      

  2.   


    嗯,那我的意思就是想知道如何才能按我插入的顺序执行,如果用Hashtable的话怎么实现,或者不用Hashtable的话怎么实现?
      

  3.   

    dictionary,string[],list都可以。
      

  4.   

    对哈希表进行排序在这里的定义是对keyvalue键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
     ArrayList akeys=new ArrayList(ht.Keys); //别忘了导入System.Collections
     akeys.Sort(); //按字母顺序进行排序
     for(string skey in akeys)
     {
       Console.Write(skey + ":");
       Console.WriteLine(ht[skey]);排序后输出
     }
      

  5.   


    但是我表里的每条记录都是有参数的,比如
    insert into t1 (id,name,value) values(@id,@name,@value)
    delete t2 where id=3
    update t3 set id=@id,name=@name,value=@values
    这种数据
      

  6.   


    谢谢,我只要它按我插入的顺序执行,不用排序的
    你插入时,key赋值1、2、3这种,然后使用ArrayList排序,遍历排序后的ArrayList,通过key去hashtable的值
    不就是按照你插入的顺序执行了麽?hashtable的顺序,我们控制不了!
      

  7.   


    谢谢,我只要它按我插入的顺序执行,不用排序的
    你插入时,key赋值1、2、3这种,然后使用ArrayList排序,遍历排序后的ArrayList,通过key去hashtable的值
    不就是按照你插入的顺序执行了麽?hashtable的顺序,我们控制不了!key值我是放的SQL语句,而value我放的是SQL参数数组
    执的方法是这样的,所以没有值可以用来放序号了
    try
                        {
                            //循环
                            foreach (DictionaryEntry myDE in SQLStringList)
                            {
                                string cmdText = myDE.Key.ToString();
                                SqlParameter[] cmdParms = (SqlParameter[])myDE.Value;
                                PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                                int val = cmd.ExecuteNonQuery();
                                cmd.Parameters.Clear();
                            }
                            trans.Commit();
                        }
                        catch
                        {
                            trans.Rollback();
                            throw;
                        }
      

  8.   


    谢谢,我只要它按我插入的顺序执行,不用排序的
    你插入时,key赋值1、2、3这种,然后使用ArrayList排序,遍历排序后的ArrayList,通过key去hashtable的值
    不就是按照你插入的顺序执行了麽?hashtable的顺序,我们控制不了!key值我是放的SQL语句,而value我放的是SQL参数数组
    执的方法是这样的,所以没有值可以用来放序号了
    try
                        {
                            //循环
                            foreach (DictionaryEntry myDE in SQLStringList)
                            {
                                string cmdText = myDE.Key.ToString();
                                SqlParameter[] cmdParms = (SqlParameter[])myDE.Value;
                                PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                                int val = cmd.ExecuteNonQuery();
                                cmd.Parameters.Clear();
                            }
                            trans.Commit();
                        }
                        catch
                        {
                            trans.Rollback();
                            throw;
                        }
    用Dictionary<>,执行顺序和插入数据一致