首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Hashtable做为参数怎么赋值

2012-01-03 
Hashtable做为参数如何赋值下面这句代码执行多条sql语句,以前一直用arraylist做为参数现在不懂ArrayList和

Hashtable做为参数如何赋值
下面这句代码执行多条sql语句,以前一直用arraylist做为参数
  现在不懂ArrayList和Hashtable哪个性能比较好,区别在哪里
  还有要怎么赋值?而且我传进去的sql语句是带参数的,如
                                                  (StringBuilder   strSql=new   StringBuilder();
strSql.Append( "insert   into   ContractSale( ");
strSql.Append( "Signer,SignTime,IsValid,DeliveryID) ");
strSql.Append( "   values   ( ");
strSql.Append( "@Signer,@SignTime,@IsValid,@DeliveryID) ");
SqlParameter[]   parameters   =   {
new   SqlParameter( "@Signer ",   SqlDbType.NVarChar),
new   SqlParameter( "@SignTime ",   SqlDbType.SmallDateTime),
new   SqlParameter( "@IsValid ",   SqlDbType.Bit,1),
new   SqlParameter( "@DeliveryID ",   SqlDbType.Int,4)};
parameters[0].Value   =   model.Signer;
parameters[1].Value   =   model.SignTime;
parameters[2].Value   =   model.IsValid;
parameters[3].Value   =   model.DeliveryID;)


                ///   <summary>
                ///   执行多条SQL语句,实现数据库事务。
                ///   </summary>
                ///   <param   name= "SQLStringList "> SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[]) </param>
                public   static   void   ExecuteSqlTran(Hashtable   SQLStringList)
                {
                        using   (SqlConnection   conn   =   new   SqlConnection(connectionString))
                        {
                                conn.Open();
                                using   (SqlTransaction   trans   =   conn.BeginTransaction())
                                {
                                        SqlCommand   cmd   =   new   SqlCommand();
                                        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;
                                        }
                                }
                        }
                }

[解决办法]
如果需要索引的话。。是HashTable快。。反之,是ArrayList
[解决办法]
用法和Arraylist差不多。记得ArrayList里面放的是Array。
HasthTable里放的是……
找找
[解决办法]
1.http://blog.csdn.net/haitor88/archive/2007/02/02/1500762.aspx----區別
用arraylist你只能用数字索引,用hashtable你可以用名称索引(Key)
2. Hashtable newhastable = new Hashtable();
newhastable .Add(sql, parameters);
[解决办法]
Dim ht As System.Collections.Hashtable


ht.Add( "kk ", "dsfsd ")
ht.Add( "ff ", "dddd ")
这样就是合法的。前面是key,后面是Value。
[解决办法]
比如说,你需要获取 数据库字段Name 的 值


SQLStringList[数据库字段名]
[解决办法]
哈希表很少用,你这里好像没有建立HashTable啊?
[解决办法]
为什么不用Dictionary <key, Value> 呢?
[解决办法]
hashtable 快一点

热点排行