Exemplo n.º 1
0
        /// <summary>
        /// An object to cache the parameterized query for full name queries.
        /// </summary>
        public GreyFoxContact FindByFullName(string fullName, bool placeHolderOnly)
        {
            StringBuilder  query;
            Database       database;
            DbCommand      dbCommand;
            IDataReader    r;
            GreyFoxContact c;

            // create a new contact to parse a name into.
            c = new GreyFoxContact(tableName);
            c.ParseName(fullName);

            query = new StringBuilder();
            query.Append("SELECT ");
            if (placeHolderOnly)
            {
                query.Append(InnerJoinFields[0]);
            }
            else
            {
                query.Append(string.Join(",", InnerJoinFields));
            }
            query.Append(" FROM ");
            query.Append(tableName);
            query.Append(" WHERE FirstName=@FirstName AND " +
                         "MiddleName=@MiddleName AND " +
                         "LastName=@LastName AND " +
                         "Suffix=@Suffix;");

            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());

            addParameter(database, dbCommand, "FirstName", DbType.String, c.firstName);
            addParameter(database, dbCommand, "MiddleName", DbType.String, c.middleName);
            addParameter(database, dbCommand, "LastName", DbType.String, c.lastName);
            addParameter(database, dbCommand, "Suffix", DbType.String, c.Suffix);

            r = database.ExecuteReader(dbCommand);
            if (r.Read())
            {
                if (placeHolderOnly)
                {
                    c = GreyFoxContact.NewPlaceHolder(tableName, r.GetInt32(0));
                }
                else
                {
                    c = GreyFoxContactManager.ParseFromReader(tableName, r, 0, 1);
                }
            }
            return(c);
        }
Exemplo n.º 2
0
        public GreyFoxContact FindByBusinessName(string businessName, bool placeHolderOnly)
        {
            StringBuilder  query;
            Database       database;
            DbCommand      dbCommand;
            IDataReader    r;
            GreyFoxContact c;

            query = new StringBuilder();
            query.Append("SELECT ");
            if (placeHolderOnly)
            {
                query.Append(InnerJoinFields[0]);
            }
            else
            {
                query.Append(string.Join(",", InnerJoinFields));
            }
            query.Append(" FROM ");
            query.Append(tableName);
            query.Append(" WHERE BusinessName=@BusinessName;");

            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());
            addParameter(database, dbCommand, "BusinessName", DbType.String, businessName);
            r = database.ExecuteReader(dbCommand);

            if (r.Read())
            {
                if (placeHolderOnly)
                {
                    c = GreyFoxContact.NewPlaceHolder(tableName, r.GetInt32(0));
                }
                else
                {
                    c = GreyFoxContactManager.ParseFromReader(tableName, r, 0, 1);
                }
            }
            else
            {
                c = new GreyFoxContact(tableName);
                c.BusinessName = businessName;
            }

            return(c);
        }