大侠们看看我这个事务函数对不对
///<summary>
///执行多条SQL语句,实现数据库事务。
///</summary>
///<param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])</param>
public bool ExecuteSqlTran(Hashtable SQLStringList)
{
bool tag = false;
// Database db = DatabaseFactory.CreateDatabase();
using (DbConnection dbconn = db.CreateConnection())
{
dbconn.Open();
DbTransaction dbtran = dbconn.BeginTransaction();
try
{
//执行语句
foreach (DictionaryEntry myDE in SQLStringList)
{
string strsql = myDE.Key.ToString();
SqlParameter[] cmdParms = (SqlParameter[])myDE.Value;
if (strsql.Trim().Length > 1)
{
DbCommand dbCommand = db.GetSqlStringCommand(strsql);
BuildDBParameter(db, dbCommand, cmdParms);
db.ExecuteNonQuery(dbCommand,dbtran);
}
}
dbtran.Commit();
tag = true;
}
catch
{
dbtran.Rollback();
}
finally
{
dbconn.Close();
}
return tag;
}
}
本地测试的时候,两张表都能插入成功的,放到网上正式用的时候,有时候能两张表都插入成功,有时候只有一张表插入成功,还有一张表没数据,不知道怎么回事啊。
有没有可能是因为用了hash表的原因啊。