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 快一点