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

如何用HashTable构造多SQL语句

2012-03-26 
怎么用HashTable构造多SQL语句?publicstaticvoidExecuteSqlTran(stringconnectionString,HashtableSQLStri

怎么用HashTable构造多SQL语句?
public   static   void   ExecuteSqlTran(string   connectionString,   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   谢谢
比如这里我有两条SQL语句
insert   into     userinfo   (username,userpwd)values(@username,@userpwd)
insert   into     userdetail(useremail,useraddress)values(@useremail,@useraddress)

[解决办法]
我觉得直接用SqlHelper就已经很方便了,没必要把sql语句放在HashTable里来搞啊!!如果是想缓存参数,可以利用SqlHelper配套的一个类,叫:SqlHelperParameterCache 来做,lz想要的话把邮箱留下,我发给你!
[解决办法]
Hashtable SQLStringList = new Hashtable();

string connectionString = "Your ConnectionString ";
string cmdText = "insert into userinfo (username,userpwd)values(@username,@userpwd) ";

SqlParameter[] cmdParms = new SqlParameter[2];
cmdParms[0] = new SqlParameter( "@username ", "name ");
cmdParms[1] = new SqlParameter( "@userpwd ", "pwd ");

SQLStringList.Add(cmdText, cmdParms);
ExecuteSqlTran(connectionString, SQLStringList);

用事务好处在于出错可以回滚,特别在于一次操作多张表时

热点排行