public static string ExcuteSqlTranction(object objList, string tablename) { //这里有两种方法,一种,将大批量插入写入D层,解耦,同时使用实例化的DB连接串,不向外暴露,但是,一旦DAO层被重新生成,则更改起来较为麻烦 //另一种,使用连接字符串,并进行加密,加密秘钥暂定"connKey",此方法方便写入APP.config,更换数据库方便 //string conn = this.connectionString; DataTable dt = new DataTable(); try { IList temp = (IList)objList; //将泛型转化成DataTable dt = ToDataTableTow(temp); //使用秘钥进行加密,秘钥可以分发给专门的人进行记录,在更改数据时留出输入秘钥的接口 string conn = DESEncrypt.Encrypt(connectionString, "connKey"); //输入秘钥进行解密 string finalConn = DESEncrypt.Decrypt(conn, "connKey"); UtilDAO.InsertEntities(finalConn, tablename, dt); return("OK"); } catch (Exception ex) { return("NG,批量插入失败:" + ex); //throw ex; } }
/// <summary> /// 把DataTable插入数据库 /// </summary> /// <param name="dt">DataTable数据</param> /// <param name="tablename">插入的表名</param> /// <returns></returns> public string ExcuteDataTableToDB(DataTable dt, string tablename) { //这里有两种方法,一种,将大批量插入写入D层,解耦,同时使用实例化的DB连接串,不向外暴露,但是,一旦DAO层被重新生成,则更改起来较为麻烦 //另一种,使用连接字符串,并进行加密,加密秘钥暂定"connKey",此方法方便写入APP.config,更换数据库方便 Database db = DatabaseFactory.CreateDatabase(DatabaseEnum.SITBusinessDB); string conn = db.ConnectionString; try { //使用秘钥进行加密,秘钥可以分发给专门的人进行记录,在更改数据时留出输入秘钥的接口 conn = DESEncrypt.Encrypt(conn, "connKey"); //输入秘钥进行解密 string finalConn = DESEncrypt.Decrypt(conn, "connKey"); UtilDAO.InsertEntities(finalConn, tablename, dt); return("OK"); } catch (Exception ex) { return("NG,插入失败:" + ex); //throw ex; } }