Esempio n. 1
0
        public ActionResult QueryExecutor(QueryExecutorVm vm)
        {
            //Find user
            AppUser      user    = _userManager.FindById(User.Identity.GetUserId());
            DataBaseInfo foundDb = DataBasesManager.GetDbInfos(user.Id).Single(m => m.Id == vm.DbId);

            //TODO: Think, if i need different executors for each DBMS or not

            using (IQueryExecutor executor = new SqlServerExecutor(foundDb.ConnectionString))
            {
                vm.DataTable = executor.ExecuteQueryAsDataTable(vm.Query);
            }
            return(PartialView("QueryResults", vm.DataTable));
        }
Esempio n. 2
0
        public ActionResult ExecuteQuery(int id)
        {
            //Find user
            AppUser user = _userManager.FindById(User.Identity.GetUserId());
            //Find DB
            DataBaseInfo foundDb = DataBasesManager.GetDbInfos(user.Id).Single(db => db.Id == id);

            QueryExecutorVm vm = new QueryExecutorVm
            {
                DbId   = id,
                DbName = foundDb.Name
            };

            return(PartialView("~/Views/Query/QueryExecutor.cshtml", vm));
        }
Esempio n. 3
0
        public ActionResult QueryExecutorWithCs(QueryExecutorVm vm)
        {
            var connectionString = Request["conStr"].Trim();

            vm.DataTable = new DataTable();
            var errorDataColumn = new DataColumn("FastSqlQueryErrMessages", typeof(string));

            vm.DataTable.Columns.Add(errorDataColumn);

            //Check if connection string is empty
            if (string.IsNullOrEmpty(connectionString))
            {
                var row = vm.DataTable.NewRow();
                row[0] = "Ваша строка подключения пуста!";
                vm.DataTable.Rows.Add(row);
                return(PartialView("QueryResults", vm.DataTable));
            }
            //Try to establish connection
            IQueryExecutor executor = null;

            try
            {
                executor = new SqlServerExecutor(connectionString);
            }
            catch
            {
                var row = vm.DataTable.NewRow();
                row[0] = "Не удалось установить соеденение.";
                vm.DataTable.Rows.Add(row);
                executor?.Dispose();
                return(PartialView("QueryResults", vm.DataTable));
            }
            //receive data
            vm.DataTable = executor.ExecuteQueryAsDataTable(vm.Query);
            executor.Dispose();

            return(PartialView("QueryResults", vm.DataTable));
        }