Hashtable做为参数如何赋值

luyesql 2007-05-16 09:56:39
下面这句代码执行多条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;
}
}
}
}
...全文
391 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxing2006 2007-05-16
  • 打赏
  • 举报
回复
hashtable 快一点
luyesql 2007-05-16
  • 打赏
  • 举报
回复
Dictionary<key, Value> 是C#2.0的特性吗?
还不懂得怎么用
cash1129 2007-05-16
  • 打赏
  • 举报
回复
为什么不用Dictionary<key, Value>呢?
olanty 2007-05-16
  • 打赏
  • 举报
回复
哈希表很少用,你这里好像没有建立HashTable啊?
cash1129 2007-05-16
  • 打赏
  • 举报
回复
比如说,你需要获取 数据库字段Name 的 值


SQLStringList[数据库字段名]
Eray 2007-05-16
  • 打赏
  • 举报
回复
Dim ht As System.Collections.Hashtable
ht.Add("kk", "dsfsd")
ht.Add("ff", "dddd")
这样就是合法的。前面是key,后面是Value。
trainli 2007-05-16
  • 打赏
  • 举报
回复
1.http://blog.csdn.net/haitor88/archive/2007/02/02/1500762.aspx----區別
用arraylist你只能用数字索引,用hashtable你可以用名称索引(Key)
2. Hashtable newhastable = new Hashtable();
newhastable .Add(sql, parameters);
Eray 2007-05-16
  • 打赏
  • 举报
回复
用法和Arraylist差不多。记得ArrayList里面放的是Array。
HasthTable里放的是……
找找
luyesql 2007-05-16
  • 打赏
  • 举报
回复
什么情况下要索引,可否举个例子
cash1129 2007-05-16
  • 打赏
  • 举报
回复
如果需要索引的话。。是HashTable快。。反之,是ArrayList
luyesql 2007-05-16
  • 打赏
  • 举报
回复
主要还是ExecuteSqlTran(Hashtable SQLStringList)
这个方法,要怎么把参数传给它

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧