Пример #1
0
        public static int Update <T>(IConnection conn, T entity, ICriteria <T> criteria) where T : EntityBase
        {
            SQLBuilder sql          = new TSQLBuilder();
            string     sqlStatement = string.Empty;

            try
            {
                sql.BuildUpdate(SQLSyntax.Update, entity.Mapping);
                sql.BuildUpdate(SQLSyntax.Set, entity.UpdateContent);
                Dictionary <SQLSyntax, string> sqlSyntaxDictionary = TranslateCriteria <T>(criteria);
                foreach (var item in sqlSyntaxDictionary)
                {
                    sql.BuildUpdate(item.Key, item.Value);
                }

                //if (entity.NeedAudit) Audit<T>(conn, entity, SQLSyntax.Update);
                sqlStatement = sql.Update;
                return(conn.ExecuteNonQuery(sqlStatement));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + "{" + sqlStatement + "}");
            }
            finally
            {
            }
        }
Пример #2
0
        public static string QueryBy <T>(IConnection pConn, string pField, string pCondition) where T : EntityBase, new()
        {
            T           dataObject = new T();
            IDataReader reader     = null;
            SQLBuilder  sql        = new TSQLBuilder();
            string      value      = string.Empty;

            try
            {
                sql.BuildQuery(SQLSyntax.Select, pField);
                sql.BuildQuery(SQLSyntax.From, (new T()).Mapping);
                sql.BuildUpdate(SQLSyntax.Where, pCondition);

                reader = pConn.ExecuteReader(sql.Query);
                if (reader.Read())
                {
                    value = reader[0].ToString().Trim();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if ((reader != null) || (!reader.IsClosed))
                {
                    reader.Close();
                }
            }
            return(value);
        }
Пример #3
0
        public static List <T> QueryMultiBy <T>(IConnection pConn, string pCondition) where T : EntityBase, new()
        {
            List <T>    dataObjectList = new List <T>();
            IDataReader reader         = null;
            SQLBuilder  sql            = new TSQLBuilder();

            try
            {
                sql.BuildQuery(SQLSyntax.Select, (new T()).Fields);
                sql.BuildQuery(SQLSyntax.From, (new T()).Mapping);
                sql.BuildUpdate(SQLSyntax.Where, pCondition);

                reader = pConn.ExecuteReader(sql.Query);
                while (reader.Read())
                {
                    T dataObject = new T();
                    ORMapping(dataObject, reader);
                    dataObjectList.Add(dataObject);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if ((reader != null) || (!reader.IsClosed))
                {
                    reader.Close();
                }
            }
            return(dataObjectList);
        }
Пример #4
0
        public static T QueryByKey <T>(IConnection conn, string keyValue) where T : EntityBase, new()
        {
            T           dataObject = new T();
            IDataReader reader     = null;
            SQLBuilder  sql        = new TSQLBuilder();

            try
            {
                sql.BuildQuery(SQLSyntax.Select, (new T()).Fields);
                sql.BuildQuery(SQLSyntax.From, (new T()).Mapping);
                sql.BuildUpdate(SQLSyntax.Where, (new T()).GetKeyCondition(keyValue));

                reader = conn.ExecuteReader(sql.Query);
                if (reader.Read())
                {
                    ORMapping(dataObject, reader);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if ((reader != null) || (!reader.IsClosed))
                {
                    reader.Close();
                }
            }
            return(dataObject);
        }
Пример #5
0
        // Parameter with Transaction or NOT
        public static int Update <T>(IConnection conn, T entity, bool transact) where T : EntityBase
        {
            SQLBuilder sql          = new TSQLBuilder();
            string     sqlStatement = string.Empty;

            try
            {
                sql.BuildUpdate(SQLSyntax.Update, entity.Mapping);
                sql.BuildUpdate(SQLSyntax.Set, entity.UpdateContent);
                sql.BuildUpdate(SQLSyntax.Where, entity.KeyCondition);

                sqlStatement = sql.Update;

                if (transact)
                {
                    conn.BeginTransaction();
                    int result = conn.ExecuteNonQuery(sqlStatement);

                    if (result == 0)
                    {
                        conn.Rollback();
                    }
                    else
                    {
                        conn.Commit();
                    }

                    return(result);
                }
                else
                {
                    return(conn.ExecuteNonQuery(sqlStatement));
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + "{" + sqlStatement + "}");
            }
            finally
            {
            }
        }
Пример #6
0
        public static int Update <T>(IConnection conn, T entity) where T : EntityBase
        {
            SQLBuilder sql          = new TSQLBuilder();
            string     sqlStatement = string.Empty;

            try
            {
                sql.BuildUpdate(SQLSyntax.Update, entity.Mapping);
                sql.BuildUpdate(SQLSyntax.Set, entity.UpdateContent);
                sql.BuildUpdate(SQLSyntax.Where, entity.KeyCondition);

                //if (entity.NeedAudit) Audit<T>(conn, entity, SQLSyntax.Update);
                sqlStatement = sql.Update;
                return(conn.ExecuteNonQuery(sqlStatement));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message + "{" + sqlStatement + "}");
            }
            finally
            {
            }
        }