Ejemplo n.º 1
0
        private static Dictionary <string, string> GetAttributeMapping(OleDbConnection conn,
                                                                       string sql, string lookupTableName, string minMaterial)
        {
            Dictionary <string, string> attMapping = new Dictionary <string, string>();
            const int maxAttColumn = 12;

            // determine the fields to look into
            sql = string.Format("SELECT * FROM wv_lookup_table WHERE lookup_table='{0}'", lookupTableName);
            using (OleDbDataReader dr = UtilityDb.GetDataReader(sql, conn))
            {
                while (dr.Read())
                {
                    for (int i = 1; i < maxAttColumn; i++)
                    {
                        string attFieldName = "ATT" + i;
                        for (int columnIndex = 0; columnIndex < dr.FieldCount; columnIndex++)
                        {
                            string columnName = dr.GetName(columnIndex);
                            if (columnName == attFieldName)
                            {
                                attMapping[columnName] = dr[columnName].ToString();
                                break;
                            }
                        }
                    }
                    break;
                }
            }

            // TEST CODE
            // minMaterial = "207251/N";

            // fetch the actual values
            Dictionary <string, string> attMappingWithValues = new Dictionary <string, string>();

            sql = string.Format("SELECT * FROM {0} WHERE MIN_MATERIAL='{1}'",
                                lookupTableName, minMaterial);
            using (OleDbDataReader dr = UtilityDb.GetDataReader(sql, conn))
            {
                while (dr.Read())
                {
                    foreach (string attFieldName in attMapping.Keys)
                    {
                        string actualFieldName = attMapping[attFieldName];
                        if (dr.HasColumn(actualFieldName))
                        {
                            attMappingWithValues[attFieldName] =
                                dr[actualFieldName].ToString();
                        }
                    }
                }
            }

            return(attMappingWithValues);
        }