Пример #1
0
        /// <summary>
        /// 增加表操作

        /// </summary>
        /// <param name="database">Comfy.Data.Database</param>
        /// <param name="table">table 類</param>
        /// <param name="model">lmodel 類</param>
        public static void AddTable(Database database, QueryTable table, Object model)
        {
            Type   modelType = model.GetType();
            Type   tableType = table.GetType();
            String s         = "";

            Comfy.Data.QueryColumn cq    = null;
            InsertSqlSection       inSql = database.Insert(table);

            foreach (System.Reflection.PropertyInfo info in modelType.GetProperties())
            {
                s = info.Name;

                if (table.GetType().GetProperty(s) == null)
                {
                    continue;
                }
                cq = (Comfy.Data.QueryColumn)table.GetType().GetProperty(s).GetValue(table, null);
                inSql.AddColumn(cq, info.GetValue(model, null));
            }
            inSql.Execute();
        }
Пример #2
0
 public float GetFloat(QueryColumn col)
 {
     return(GetFloat(col.ColumnName));
 }
Пример #3
0
 public Type GetFieldType(QueryColumn col)
 {
     return(GetFieldType(col.ColumnName));
 }
Пример #4
0
 public string GetString(QueryColumn col)
 {
     return(GetString(col.ColumnName));
 }
Пример #5
0
 public decimal GetDecimal(QueryColumn col)
 {
     return(GetDecimal(col.ColumnName));
 }
Пример #6
0
 public int GetInt32(QueryColumn col)
 {
     return(GetInt32(col.ColumnName));
 }
Пример #7
0
        /// <summary>
        /// 獲得表信息

        /// </summary>
        /// <param name="modelList">modelList</param>
        /// <param name="table">table</param>
        /// <param name="model">model</param>
        /// <param name="sdr">SafeDataReader sdr</param>
        public static void GetTable(IList modelList, QueryTable table, Object model, SelectSqlSection sql, int sum)
        {
            Type modelType = model.GetType(); //model的類型

            Type tableType = table.GetType(); //table的類型

            string proName = "";              //屬性名稱

            using (SafeDataReader sdr = new SafeDataReader(sql.ToDataReader()))
            {
                while (sdr.Read())
                {
                    object modelObj = Activator.CreateInstance(modelType);                             //創建新對象

                    Type modelObjType = modelObj.GetType();                                            //獲得對象的類型

                    foreach (System.Reflection.PropertyInfo modelInfo in modelObjType.GetProperties()) //遍曆model的所有屬性

                    {
                        proName = modelInfo.Name;
                        if (proName.Equals("GridRowCount"))
                        {
                            modelInfo.SetValue(modelObj, sum, null);
                            continue;
                        }

                        if (table.GetType().GetProperty(proName) == null)
                        {
                            continue;
                        }
                        Comfy.Data.QueryColumn queryColumn = (Comfy.Data.QueryColumn)table.GetType().GetProperty(proName).GetValue(table, null);

                        //匹配類型
                        if (modelInfo.PropertyType.Equals(typeof(string)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetString(queryColumn), null);
                        }

                        else if (modelInfo.PropertyType.Equals(typeof(DateTime)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetDateTime(queryColumn), null);
                        }
                        else if (modelInfo.PropertyType.Equals(typeof(int)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetInt32(queryColumn), null);
                        }
                        else if (modelInfo.PropertyType.Equals(typeof(long)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetInt64(queryColumn), null);
                        }
                        else if (modelInfo.PropertyType.Equals(typeof(short)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetInt16(queryColumn), null);
                        }
                        else if (modelInfo.PropertyType.Equals(typeof(bool)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetBoolean(queryColumn), null);
                        }
                        else if (modelInfo.PropertyType.Equals(typeof(float)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetFloat(queryColumn), null);
                        }
                        else if (modelInfo.PropertyType.Equals(typeof(double)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetDouble(queryColumn), null);
                        }
                        else if (modelInfo.PropertyType.Equals(typeof(decimal)))
                        {
                            modelInfo.SetValue(modelObj, sdr.GetDecimal(queryColumn), null);
                        }
                        else
                        {
                            throw new Exception("沒有匹配中類型");
                        }
                    }
                    modelList.Add(modelObj);
                }
            }
        }
Пример #8
0
        public virtual bool IsDBNull(QueryColumn col)
        {
            int index = this.GetOrdinal(col.ColumnName);

            return(this.IsDBNull(index));
        }
Пример #9
0
 public Int64 GetChars(QueryColumn col, Int64 fieldOffset,
                       char[] buffer, int bufferOffset, int length)
 {
     return(GetChars(col.ColumnName, fieldOffset, buffer, bufferOffset, length));
 }
Пример #10
0
 public char GetChar(QueryColumn col)
 {
     return(GetChar(col.ColumnName));
 }
Пример #11
0
 public byte GetByte(QueryColumn col)
 {
     return(GetByte(col.ColumnName));
 }
Пример #12
0
 public bool GetBoolean(QueryColumn col)
 {
     return(GetBoolean(col.ColumnName));
 }
Пример #13
0
 public System.Guid GetGuid(QueryColumn col)
 {
     return(GetGuid(col.ColumnName));
 }
Пример #14
0
 public double GetDouble(QueryColumn col)
 {
     return(GetDouble(col.ColumnName));
 }
Пример #15
0
 public short GetInt16(QueryColumn col)
 {
     return(GetInt16(col.ColumnName));
 }
Пример #16
0
 public Int64 GetInt64(QueryColumn col)
 {
     return(GetInt64(col.ColumnName));
 }
Пример #17
0
 public IDataReader GetData(QueryColumn col)
 {
     return(GetData(col.ColumnName));
 }
Пример #18
0
 public string GetDataTypeName(QueryColumn col)
 {
     return(GetDataTypeName(col.ColumnName));
 }
Пример #19
0
 public virtual DateTime GetDateTime(QueryColumn col)
 {
     return(GetDateTime(col.ColumnName));
 }
Пример #20
0
        /// <summary>
        /// 更新表

        /// </summary>
        /// <param name="database">Comfy.Data.Database</param>
        /// <param name="table">table類</param>
        /// <param name="model">model類</param>
        /// <param name="updateFields">要更新的字段,名字要和model中的屬性相同。如果要更新所有的字段,此參數為null</param>
        /// <param name="whereStrs">條件字段</param>
        public static void UpdateTable(Database database, QueryTable table, Object model, Comfy.Data.QueryColumn[] updateFields, Comfy.Data.QueryColumn[] whereQc)
        {
            Type   modelType = model.GetType();
            Type   tableType = table.GetType();
            String s         = "";

            Comfy.Data.QueryColumn wQc       = null;
            UpdateSqlSection       updateSql = database.Update(table);

            if (updateFields == null)   //更新所有字段

            {
                foreach (System.Reflection.PropertyInfo info in modelType.GetProperties())  //更新所有字段

                {
                    s = info.Name;
                    int i = 0;
                    foreach (QueryColumn wqc in whereQc)
                    {
                        if (wqc.Name == s)
                        {
                            i++;
                            break;
                        }
                    }
                    if (i == 0)
                    {
                        QueryColumn qc = (Comfy.Data.QueryColumn)table.GetType().GetProperty(s).GetValue(table, null);
                        updateSql.AddColumn(qc, info.GetValue(model, null));
                    }
                }
            }
            else //更新部分字段
            {
                foreach (QueryColumn qc in updateFields)
                {
                    foreach (System.Reflection.PropertyInfo info in modelType.GetProperties())  //更新所有字段

                    {
                        if (qc.Name == info.Name)
                        {
                            updateSql.AddColumn(qc, info.GetValue(model, null));
                            break;
                        }
                    }
                }
            }

            foreach (QueryColumn wqc in whereQc)
            {
                foreach (System.Reflection.PropertyInfo wInfo in modelType.GetProperties()) //條件語句
                {
                    if (wqc.Name == wInfo.Name)
                    {
                        updateSql.Where(wqc == wInfo.GetValue(model, null));
                        break;
                    }
                }
            }
            updateSql.Execute();
        }
Пример #21
0
 public object GetValue(QueryColumn col)
 {
     return(GetValue(col.ColumnName));
 }