Beispiel #1
0
        virtual protected Hashtable parseData(Hashtable data, bool isInsert)
        {
            Hashtable result = new Hashtable();

            // 分析数据
            try
            {
                var       sql       = getTableFind(parseTable());
                PDO       pdo       = new PDO();
                ResultSet resultSet = pdo.query(sql);
                int       length    = resultSet.columnCount();
                for (int i = 0; i < length; i++)
                {
                    string col  = resultSet.columnName(i);
                    string type = resultSet.columnType(i);
                    if (col.ToLower().Equals("id"))
                    {
                        continue;
                    }
                    if (data.ContainsKey(col))
                    {
                        object content = data[col];
                        if (content is ArrayList)
                        {
                            ArrayList var = (ArrayList)content;
                            if (var[0].Equals("inc") || var[0].Equals("dec"))
                            {
                                string fuhao = var[0].Equals("inc") ? "+" : "-";
                                result.Add(col, col + fuhao + var[1]);
                            }
                        }
                        else
                        {
                            result.Add(col, getFieldValue(type, content.ToString()));
                        }
                    }
                    else
                    {
                        if (isInsert)
                        {
                            result.Add(col, getFieldDefault(type));
                        }
                    }
                }
                resultSet.Dispose();
                pdo.Dispose();

                /*
                 * DataSet dataSet = Connect.getDataSet(sql);
                 * DataColumnCollection columns = dataSet.Tables[0].Columns;
                 * for (int i = 0; i < columns.Count; i++)
                 * {
                 *  DataColumn column = columns[i];
                 *  string col = column.ColumnName;
                 *  string type = column.DataType.ToString();
                 *  if (col.ToLower().Equals("id"))
                 *  {
                 *      continue;
                 *  }
                 *  if (data.ContainsKey(col))
                 *  {
                 *      object content = data[col];
                 *      if (content is ArrayList)
                 *      {
                 *          ArrayList var = (ArrayList) content;
                 *          if (var[0].Equals("inc") || var[0].Equals("dec"))
                 *          {
                 *              string fuhao = var[0].Equals("inc") ? "+" : "-";
                 *              result.Add(col, col + fuhao + var[1]);
                 *          }
                 *      }
                 *      else
                 *      {
                 *          result.Add(col, getFieldValue(type, content.ToString()));
                 *      }
                 *  }
                 *  else
                 *  {
                 *      if (isInsert)
                 *      {
                 *          result.Add(col, getFieldDefault(type));
                 *      }
                 *  }
                 * }*/
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(result);
        }