예제 #1
0
 public static void ExcuteNoneQuery(string sqlString)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         broker.ExecuteNonQuery(sqlString, null, CommandType.Text);
     }
 }
예제 #2
0
 public static void ExcuteNoneQuery(string sqlString, DataAccessParameterCollection para, CommandType type)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         broker.ExecuteNonQuery(sqlString, para, type);
     }
 }
예제 #3
0
 /// <summary>
 /// 根据状态保存-独立事务
 /// </summary>
 /// <param name="entity"></param>
 public static void Save(EntityBase entity)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         Save(entity, broker);
     }
 }
예제 #4
0
 public static Dictionary <string, object> ExecuteStoreProcedure(string spName, DataAccessParameterCollection parameters)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         return(broker.ExecuteProcReturnOutput(spName, parameters));
     }
 }
예제 #5
0
        public static PerformanceEntityCollection <T> PerformanceSelect <T>(string queryString, DataAccessParameterCollection parameters, CommandType cmdType)
            where T : EntityBase, new()
        {
            PerformanceEntityCollection <T> result = null;

            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                IDataReader reader = broker.ExecuteReader(queryString, parameters, cmdType);

                int           fieldCount = reader.FieldCount;
                List <string> columns    = new List <string>();
                object[]      values     = new object[fieldCount];
                for (int i = 0; i < fieldCount; i++)
                {
                    columns.Add(reader.GetName(i));
                }
                result = new PerformanceEntityCollection <T>(columns);

                while (reader.Read())
                {
                    reader.GetValues(values);
                    result.Add(values);
                }
                reader.Dispose();
            }
            return(result);
        }
예제 #6
0
        /// <summary>
        /// 批量新增-独立事务
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="list"></param>
        public static bool Insert <T>(List <T> list)
            where T : EntityBase
        {
            DataAccessBroker broker = DataAccessFactory.Instance();
            bool             result = true;

            try
            {
                broker.BeginTransaction();
                Insert(list, broker);
                broker.Commit();
            }
            catch (Exception ex)
            {
                result = false;
                broker.RollBack();

                throw ex;
            }
            finally
            {
                broker.Close();
            }
            return(result);
        }
예제 #7
0
        /// <summary>
        /// 获取数据通过Command
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="command">SQL</param>
        /// <returns></returns>
        public static EntityCollection <T> Select <T>(string queryString, DataAccessParameterCollection parameters, CommandType cmdType)
            where T : EntityBase, new()
        {
            EntityCollection <T> result = new EntityCollection <T>();

            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                IDataReader reader = broker.ExecuteReader(queryString, parameters, cmdType);

                int           fieldCount = reader.FieldCount;
                List <string> columns    = new List <string>();
                object[]      values     = new object[fieldCount];
                for (int i = 0; i < fieldCount; i++)
                {
                    columns.Add(reader.GetName(i));
                }

                while (reader.Read())
                {
                    T t = new T();
                    reader.GetValues(values);
                    for (int i = 0; i < fieldCount; i++)
                    {
                        if (!(values[i] == DBNull.Value))
                        {
                            t.SetData(columns[i], values[i]);
                            t.GetData(columns[i]);
                        }
                    }
                    result.Add(t);
                }
            }
            return(result);
        }
예제 #8
0
 public static object SelectScalar(string sqlString, DataAccessParameterCollection paraCollection)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         return(broker.ExecuteScalar(sqlString, paraCollection, CommandType.Text));
     }
 }
예제 #9
0
        /// <summary>
        /// 批量新增-独立事务
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="list"></param>
        /// Jerry 2009年3月23日 老刘修改了此方法 只Creat一次Command 减少内存的损耗 修改后方法见下方395行开始
        //public static bool Insert<T>(List<T> list)
        //    where T : EntityBase
        //{
        //    DataAccessBroker broker = DataAccessFactory.Instance();
        //    bool result = true;
        //    try
        //    {
        //        broker.BeginTransaction();
        //        Insert(list, broker);
        //        broker.Commit();
        //    }
        //    catch
        //    {
        //        result = false;
        //        broker.RollBack();
        //    }
        //    finally
        //    {
        //        broker.Close();
        //    }
        //    return result;
        //}

        public static bool Insert <T>(List <T> list)
            where T : EntityBase
        {
            DataAccessBroker broker = DataAccessFactory.Instance();
            bool             result = true;

            try
            {
                if (list != null && list.Count > 0)
                {
                    broker.BeginTransaction();
                    T t = list[0];
                    //string sqlString = "INSERT INTO " + t.OringTableSchema.TableName + " ( " + ParseInsertSQL(t.OringTableSchema.AllColumnInfo, "") + " ) VALUES( " + ParseInsertSQL(t.OringTableSchema.AllColumnInfo, broker.ParameterPrefix) + ")";
                    //broker.CreateCommandE(sqlString);

                    foreach (T entity in list)
                    {
                        Insert(entity, broker);
                    }
                    broker.Commit();
                }
            }
            catch (Exception ex)
            {
                result = false;
                broker.RollBack();
                throw ex;
            }
            finally
            {
                broker.Close();
                broker.Dispose();
            }
            return(result);
        }
예제 #10
0
 public static int ExecuteStoreProcedureHasReturn(string spName, DataAccessParameterCollection parameters)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         var rowsaffected = broker.ExecuteCommand(spName, parameters);
         return(1);
     }
 }
예제 #11
0
 public static void DeleteAll <T>()
     where T : EntityBase, new ()
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance(InstanceName))
     {
         T t = new T();
         broker.ExecuteSQL("delete from " + t.OringTableSchema.TableName);
     }
 }
예제 #12
0
        public static string SelectScalar(string sqlString)
        {
            object value = null;

            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                value = broker.ExecuteSQLScalar(sqlString);
            }
            return(value == null ? null : value.ToString());
        }
예제 #13
0
        public static DataSet Select(string queryString, string instanceName, DataAccessParameterCollection parameters)
        {
            DataSet ds = null;

            using (DataAccessBroker broker = DataAccessFactory.Instance(instanceName))
            {
                ds = broker.FillSQLDataSet(queryString, parameters);
            }
            return(ds);
        }
예제 #14
0
        public static int ExecuteStoreProcedure(string spName)
        {
            int value = 0;

            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                value = broker.ExecuteNonQuery(spName, null, CommandType.StoredProcedure);
            }
            return(value);
        }
예제 #15
0
        public static int ExecuteNoneQuery(string sqlString)
        {
            int value = 0;

            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                value = broker.ExecuteNonQuery(sqlString, null, CommandType.Text);
            }
            return(value);
        }
예제 #16
0
 /// <summary>
 /// ExecuteScalar 并返还回唯一值
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="wb"></param>
 /// <param name="defaultValue"></param>
 /// <returns></returns>
 public static T ExecuteScalar <T>(WhereBuilder wb, T defaultValue)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         object result = broker.ExecuteScalar(wb);
         if (result != null && result != DBNull.Value)
         {
             defaultValue = (T)result;
         }
     }
     return(defaultValue);
 }
예제 #17
0
 public static Dictionary <string, object> ExecuteProcReturnOutput(string commandString, DataAccessParameter[] dps)
 {
     using (DataAccessBroker broker = DataAccessFactory.Instance())
     {
         DataAccessParameterCollection dpc = new DataAccessParameterCollection();
         if (dps != null && dps.Length > 0)
         {
             foreach (DataAccessParameter dp in dps)
             {
                 dpc.Add(dp.ParameterName, dp);
             }
         }
         return(broker.ExecuteProcReturnOutput(commandString, dpc));
     }
 }
예제 #18
0
        /// <summary>
        /// 新增-独立事务
        /// </summary>
        /// <param name="entity"></param>
        public static bool Insert(EntityBase entity)
        {
            bool result = true;

            //try
            //{
            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                Insert(entity, broker);
            }
            //}
            //catch
            //{
            //   result = false;
            //}
            return(result);
        }
예제 #19
0
        public static List <T> SelectSingleValue <T>(string queryString)
        {
            List <T> result = new List <T>();

            using (DataAccessBroker broker = DataAccessFactory.Instance(InstanceName))
            {
                IDataReader reader = broker.ExecuteReader(queryString, new DataAccessParameterCollection(), CommandType.Text);

                while (reader.Read())
                {
                    T tmp = (T)reader.GetValue(0);

                    result.Add(tmp);
                }
            }
            return(result);
        }
예제 #20
0
        /// <summary>
        /// 更新-独立事务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public static bool Update(EntityBase entity)
        {
            bool result = true;

            try
            {
                using (DataAccessBroker broker = DataAccessFactory.Instance())
                {
                    Update(entity, broker);
                }
            }
            catch (Exception ex)
            {
                result = false;
            }
            return(result);
        }
예제 #21
0
        /// <summary>
        /// 删除-独立事务-根据所有非空字段AND条件删除
        /// </summary>
        /// <param name="entity"></param>
        public static bool DeleteEntity(EntityBase entity)
        {
            bool result = true;

            try
            {
                using (DataAccessBroker broker = DataAccessFactory.Instance())
                {
                    DeleteEntity(entity, broker);
                }
            }
            catch
            {
                result = false;
            }
            return(result);
        }
예제 #22
0
        /// <summary>
        /// 批量保存-独立事务
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="list"></param>
        public static bool Save <T>(List <T> list)
            where T : EntityBase
        {
            DataAccessBroker broker = DataAccessFactory.Instance(InstanceName);
            bool             result = true;

            try
            {
                broker.BeginTransaction();
                Save <T>(list, broker);
                broker.Commit();
            }
            catch
            {
                result = false;
                broker.RollBack();
            }
            finally
            {
                broker.Close();
            }
            return(result);
        }
예제 #23
0
        public static bool UpdateAndSave <T>(IEnumerable <T> list)
            where T : EntityBase, new()
        {
            DataAccessBroker broker = DataAccessFactory.Instance();
            bool             result = true;

            try
            {
                broker.BeginTransaction();
                UpdateAndSave <T>(list, broker);
                broker.Commit();
            }
            catch (Exception ex)
            {
                result = false;
                broker.RollBack();
                throw ex;
            }
            finally
            {
                broker.Close();
            }
            return(result);
        }
예제 #24
0
        /// <summary>
        /// 获取数据通过Command
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="command">SQL</param>
        /// <returns></returns>
        public static EntityCollection <T> Select <T>(string queryString, DataAccessParameterCollection parameters, CommandType cmdType)
            where T : EntityBase, new()
        {
            EntityCollection <T> result = new EntityCollection <T>();

            using (DataAccessBroker broker = DataAccessFactory.Instance())
            {
                IDataReader reader = broker.ExecuteReader(queryString, parameters, cmdType);

                int           fieldCount = reader.FieldCount;
                List <string> columns    = new List <string>();

                Dictionary <string, Type>   columnType = new Dictionary <string, Type>();
                Dictionary <string, string> nameChange = new Dictionary <string, string>();

                T        col    = new T();
                object[] values = new object[fieldCount];
                for (int i = 0; i < fieldCount; i++)
                {
                    columns.Add(reader.GetName(i));


                    for (int m = 0; m < col.OringTableSchema.AllColumnInfo.Count; m++)
                    {
                        if (col.OringTableSchema.AllColumnInfo[m].ColumnName.ToUpper() == reader.GetName(i).ToUpper())
                        {
                            columnType.Add(reader.GetName(i), col.OringTableSchema.AllColumnInfo[m].DataType);

                            nameChange.Add(reader.GetName(i), col.OringTableSchema.AllColumnInfo[m].ColumnName);
                        }
                    }
                }

                while (reader.Read())
                {
                    T t = new T();
                    reader.GetValues(values);
                    for (int i = 0; i < fieldCount; i++)
                    {
                        if (!(values[i] == DBNull.Value))
                        {
                            if (!columnType.ContainsKey(columns[i]))
                            {
                                continue;
                            }

                            if (values[i].GetType() == columnType[columns[i]])
                            {
                                t.SetData(nameChange[columns[i]], values[i]);
                            }
                            else
                            {
                                if (columnType[columns[i]] == Type.GetType("System.Int32"))
                                {
                                    t.SetData(nameChange[columns[i]], int.Parse(values[i].ToString()));
                                }
                                else if (columnType[columns[i]] == Type.GetType("System.Boolean"))
                                {
                                    if (values[i].ToString() == "0")
                                    {
                                        t.SetData(nameChange[columns[i]], false);
                                    }
                                    else
                                    {
                                        t.SetData(nameChange[columns[i]], true);
                                    }
                                }
                                else if (columnType[columns[i]] == Type.GetType("System.DateTime"))
                                {
                                    t.SetData(nameChange[columns[i]], values[i].ToString());
                                }
                                else if (columnType[columns[i]] == Type.GetType("System.Decimal"))
                                {
                                    t.SetData(nameChange[columns[i]], values[i].ToString());
                                }
                                else
                                {
                                    t.SetData(nameChange[columns[i]], values[i]);
                                }
                            }
                        }
                    }
                    result.Add(t);
                }
                reader.Dispose();
            }
            return(result);
        }