示例#1
0
        public List <PairData> executeQuery(SQLCommand query)
        {
            List <PairData> result      = null;
            string          queryString = query.query;
            string          pattern     = @"{\s{0,}SCORE\s{0,}(>|>=|<|<=|=)\s{0,}(@\w+)\s{0,}}";
            Regex           r           = new Regex(pattern, RegexOptions.IgnoreCase);
            Match           m           = r.Match(queryString);

            if (query != null && m.Success)
            {
                String fullScorePart                   = m.Value;
                Group  signGroup                       = m.Groups[1];
                Group  scoreParameterGroup             = m.Groups[2];
                string signParameterPart               = signGroup.Value;
                string scoreParameterPart              = scoreParameterGroup.Value;
                Dictionary <String, String> parameters = query.parameters;

                if (parameters.ContainsKey(scoreParameterPart))
                {
                    double scoreParameter = double.Parse(parameters[scoreParameterPart]);
                    parameters.Remove(scoreParameterPart);
                    String           queryToExecute = r.Replace(queryString, "1 == 1");
                    SQLiteConnection connection     = DBConnection.openDB();
                    SQLiteCommand    command        = new SQLiteCommand(queryToExecute, connection);
                    command.CommandType = CommandType.Text;
                    addAllParameters(parameters, command);
                    SQLiteDataReader reader = command.ExecuteReader();
                    List <Data>      datas  = prepareDatas(reader);
                    DBConnection.closeDB();
                    result = analyze(scoreParameter, datas, signParameterPart);
                }
            }
            return(result);
        }
示例#2
0
文件: Repository.cs 项目: 200351/MBD
        public List <PairData> findTextScoreGreaterThen(double score)
        {
            SQLQueryExecutor executor = new SQLQueryExecutor();
            SQLCommand       command  = new SQLCommand();

            command.query = "SELECT * FROM TEXTS WHERE {SCORE > @score}";
            command.parameters.Add("@score", score.ToString());
            List <PairData> datas = executor.executeQuery(command);

            return(datas);
        }
示例#3
0
文件: Repository.cs 项目: 200351/MBD
        public List <PairData> findTextWithWordContainsAndScoreLessEquals(string name, double score)
        {
            SQLQueryExecutor executor = new SQLQueryExecutor();
            SQLCommand       command  = new SQLCommand();

            command.query = "SELECT * FROM TEXTS WHERE CONTENT LIKE @content AND {SCORE <= @score}";
            command.parameters.Add("@content", "%" + name + "%");
            command.parameters.Add("@score", score.ToString());
            List <PairData> datas = executor.executeQuery(command);

            return(datas);
        }
示例#4
0
文件: Repository.cs 项目: 200351/MBD
        public List <PairData> findTextWithNameContainsAndScoreGreaterEquals(string name, double score)
        {
            SQLQueryExecutor executor = new SQLQueryExecutor();
            SQLCommand       command  = new SQLCommand();

            command.query = "SELECT * FROM TEXTS WHERE TITLE LIKE @title AND {SCORE >= @anotherscore}";
            command.parameters.Add("@title", "%" + name + "%");
            command.parameters.Add("@anotherscore", score.ToString());
            List <PairData> datas = executor.executeQuery(command);

            return(datas);
        }