Beispiel #1
0
        /// <summary>
        /// Gets a <see cref="PollDataSet"/> containg all the polls with the given filter.
        /// </summary>
        protected internal override PollDataSet GetPollsByFilter(PollSelectionFilter filter)
        {
            PollDataSet polls = new PollDataSet();

            using (OleDbConnection cn = this.CreateConnection())
            {
                OleDbDataAdapter da = null;

                da = new OleDbDataAdapter();
                da.SelectCommand            = CreateSelectionCommand("*", filter);
                da.SelectCommand.Connection = cn;
                da.TableMappings.Add(PollsTable, polls.Polls.TableName);
                da.Fill(polls.Polls);

                da = new OleDbDataAdapter();
                da.SelectCommand             = CreateSelectionCommand("PollID", filter);
                da.SelectCommand.CommandText = "Select * From " + OptionsView + " Where PollID In ( " + da.SelectCommand.CommandText + " )";
                da.SelectCommand.Connection  = cn;
                da.TableMappings.Add(OptionsView, polls.Options.TableName);
                da.Fill(polls.Options);

                da = new OleDbDataAdapter();
                da.SelectCommand             = CreateSelectionCommand("PollID", filter);
                da.SelectCommand.CommandText = "Select * From " + VotesTable + " Where PollID In ( " + da.SelectCommand.CommandText + " )";
                da.SelectCommand.Connection  = cn;
                da.TableMappings.Add(VotesTable, polls.Votes.TableName);
                da.Fill(polls.Votes);
            }

            return(polls);
        }
Beispiel #2
0
        private static OleDbCommand CreateSelectionCommand(String fields, PollSelectionFilter filter)
        {
            OleDbCommand cmd = new OleDbCommand();

            System.Text.StringBuilder sql = new System.Text.StringBuilder();
            sql.Append("Select ");
            sql.Append(fields);
            sql.Append(" From ");
            sql.Append(PollsTable);
            if (filter.IsFilterSet)
            {
                sql.Append(" Where ");
                if (filter.Category != null)
                {
                    sql.Append(" Category Like ?");
                    cmd.Parameters.Add("@Category", OleDbType.VarWChar).Value = "%" + filter.Category + "%";
                }
                if (filter.Text != null)
                {
                    if (sql[sql.Length - 1] != ' ')
                    {
                        sql.Append(" And ");
                    }
                    sql.Append(" Text Like ?");
                    cmd.Parameters.Add("@Text", OleDbType.VarWChar).Value = "%" + filter.Text + "%";
                }
                if (!filter.BeginDate.IsNull)
                {
                    if (sql[sql.Length - 1] != ' ')
                    {
                        sql.Append(" And ");
                    }
                    sql.Append(" StartDate >= ?");
                    cmd.Parameters.Add("@StartDate", OleDbType.Date).Value = filter.BeginDate.Value;
                }
                if (!filter.EndDate.IsNull)
                {
                    if (sql[sql.Length - 1] != ' ')
                    {
                        sql.Append(" And ");
                    }
                    sql.Append(" StartDate <= ?");
                    cmd.Parameters.Add("@EndDate", OleDbType.Date).Value = filter.EndDate.Value;
                }
            }
            cmd.CommandText = sql.ToString();
            return(cmd);
        }
Beispiel #3
0
        /// <summary>
        /// Gets a <see cref="PollDataSet"/> containg all the polls with the given filter.
        /// </summary>
        public static PollDataSet GetPollsByFilter(PollSelectionFilter filter)
        {
            PollDataSet p = Polling.Provider.GetPollsByFilter(filter);

            return(p ?? new PollDataSet());
        }
 /// <summary>
 /// Gets a <see cref="PollDataSet"/> containg all the polls with the given filter.
 /// </summary>
 protected internal abstract PollDataSet GetPollsByFilter(PollSelectionFilter filter);