Exemple #1
0
        private void UpdateDataGridResult(IDbCommand command)
        {
            dataGridResult.CancelEdit();
            DateTime start = DateTime.Now;

            try
            {
                IDataReader reader = null;
                try
                {
                    reader = command.ExecuteReader();
                    DataGridControllerResult.Load(reader, Target);
                }
                catch (Exception t)
                {
                    Db2SourceContext ctx = Target.Context;
                    ctx.OnLog(ctx.GetExceptionMessage(t), LogStatus.Error, command.CommandText);
                    return;
                }
            }
            finally
            {
                DateTime end  = DateTime.Now;
                TimeSpan time = end - start;
                string   s    = string.Format("{0}:{1:00}:{2:00}.{3:000}", (int)time.TotalHours, time.Minutes, time.Seconds, time.Milliseconds);
                textBlockGridResult.Text = string.Format("{0}件見つかりました。  所要時間 {1}", DataGridControllerResult.Rows.Count, s);
            }
        }
Exemple #2
0
        private void UpdateDataGridResult(IDbCommand command)
        {
            DateTime start = DateTime.Now;

            try
            {
                try
                {
                    using (IDataReader reader = command.ExecuteReader())
                    {
                        DataGridControllerResult.Load(reader);
                    }
                }
                catch (Exception t)
                {
                    MessageBox.Show(Target.Context.GetExceptionMessage(t), "エラー", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }
            finally
            {
                DateTime end  = DateTime.Now;
                TimeSpan time = end - start;
                string   s    = string.Format("{0}:{1:00}:{2:00}.{3:000}", (int)time.TotalHours, time.Minutes, time.Seconds, time.Milliseconds);
                textBlockGridResult.Text = string.Format("{0}件見つかりました。  所要時間 {1}", DataGridControllerResult.Rows.Count, s);
            }
        }
Exemple #3
0
        private void UpdateDataGridResult(IDbCommand command)
        {
            DateTime start = DateTime.Now;

            try
            {
                IDbTransaction txn = command.Connection.BeginTransaction();
                try
                {
                    command.Transaction = txn;
                    using (IDataReader reader = command.ExecuteReader())
                    {
                        IEnumerable l = dataGridParameters.ItemsSource;
                        dataGridParameters.ItemsSource = null;
                        dataGridParameters.ItemsSource = l;
                        DataGridControllerResult.Load(reader);
                        if (0 <= reader.RecordsAffected)
                        {
                            AddLog(string.Format("{0}行反映しました。", reader.RecordsAffected), null, LogStatus.Normal, true);
                        }
                        else
                        {
                            tabControlResult.SelectedItem = tabItemDataGrid;
                        }
                    }
                    txn.Commit();
                }
                catch
                {
                    txn.Rollback();
                    throw;
                }
                finally
                {
                    command.Transaction = null;
                    txn.Dispose();
                }
            }
            catch (Exception t)
            {
                Db2SourceContext ctx = Target.Context;
                string           msg = ctx.GetExceptionMessage(t);
                AddLog(msg, command.CommandText, LogStatus.Error, true);
                //MessageBox.Show(msg, "エラー", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            finally
            {
                DateTime end  = DateTime.Now;
                TimeSpan time = end - start;
                string   s    = string.Format("{0}:{1:00}:{2:00}.{3:000}", (int)time.TotalHours, time.Minutes, time.Seconds, time.Milliseconds);
                AddLog(string.Format("実行しました (所要時間 {0})", s), command.CommandText, LogStatus.Aux, false);
                textBlockGridResult.Text = string.Format("{0}件見つかりました。  所要時間 {1}", DataGridControllerResult.Rows.Count, s);
            }
        }
Exemple #4
0
 private void ButtonApply_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         DataGridControllerResult.Save();
     }
     catch (Exception t)
     {
         Db2SourceContext ctx = Target.Context;
         ctx.OnLog(ctx.GetExceptionMessage(t), LogStatus.Error, Target.Context.LastSql);
         return;
     }
 }
Exemple #5
0
        public void OnTabClosing(object sender, ref bool cancel)
        {
            if (!DataGridControllerResult.IsModified)
            {
                return;
            }
            MainWindow.TabBecomeVisible(this);
            MessageBoxResult ret = MessageBox.Show(string.Format("\"{0}\"の変更が保存されていません。保存しますか?", Target.DisplayName),
                                                   "確認", MessageBoxButton.YesNoCancel, MessageBoxImage.Exclamation, MessageBoxResult.Yes);

            switch (ret)
            {
            case MessageBoxResult.Yes:
                DataGridControllerResult.Save();
                break;

            case MessageBoxResult.No:
                break;

            case MessageBoxResult.Cancel:
                cancel = true;
                break;
            }
        }
Exemple #6
0
 private void FindPreviousCommand_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     DataGridControllerResult.SearchGridTextBackward();
 }
Exemple #7
0
 private void FindNextCommand_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     DataGridControllerResult.SearchGridTextForward();
 }
Exemple #8
0
        //private WeakReference<SearchDataGridWindow> _searchWindowDataGridColumns = null;
        //private SearchDataGridWindow RequireSearchWindowDataGridColumns()
        //{
        //    SearchDataGridWindow win;
        //    if (_searchWindowDataGridColumns != null && _searchWindowDataGridColumns.TryGetTarget(out win))
        //    {
        //        return win;
        //    }
        //    win = new SearchDataGridWindow();
        //    win.Target = dataGridColumns;
        //    win.Owner = Window.GetWindow(this);
        //    win.Closed += SearchWindowDataGridColumns_Closed;
        //    _searchWindowDataGridColumns = new WeakReference<SearchDataGridWindow>(win);
        //    return win;
        //}

        //private void SearchWindowDataGridColumns_Closed(object sender, EventArgs e)
        //{
        //    _searchWindowDataGridColumns = null;
        //}

        private void FindCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            DataGridControllerResult.ShowSearchWinodow();
        }
Exemple #9
0
 private void buttonAdd_Click(object sender, RoutedEventArgs e)
 {
     DataGridControllerResult.NewRow();
 }
Exemple #10
0
 private void ButtonRevert_Click(object sender, RoutedEventArgs e)
 {
     DataGridControllerResult.Revert();
     //Fetch(true);
 }
Exemple #11
0
        public void Fetch(bool force)
        {
            dataGridResult.CommitEdit();
            _fetched = false;
            if (!force && DataGridControllerResult.IsModified)
            {
                MessageBoxResult ret = MessageBox.Show("変更が保存されていません。保存しますか?", "確認", MessageBoxButton.YesNoCancel, MessageBoxImage.Exclamation, MessageBoxResult.Yes);
                switch (ret)
                {
                case MessageBoxResult.Yes:
                    DataGridControllerResult.Save();
                    break;

                case MessageBoxResult.No:
                    break;

                case MessageBoxResult.Cancel:
                    return;
                }
            }
            if (Target == null)
            {
                return;
            }
            Db2SourceContext ctx = Target.Context;

            if (ctx == null)
            {
                return;
            }
            int?limit = null;

            if (IsChecked(checkBoxLimitRow) && !string.IsNullOrEmpty(textBoxLimitRow.Text))
            {
                int l;
                if (!int.TryParse(textBoxLimitRow.Text, out l))
                {
                    MessageBox.Show("件数が数字ではありません", "エラー", MessageBoxButton.OK, MessageBoxImage.Error);
                    textBoxLimitRow.Focus();
                }
                limit = l;
            }
            string orderby = sortFields.GetOrderBySql(string.Empty);
            int    offset;
            string sql = Target.GetSelectSQL(null, textBoxCondition.Text, orderby, limit, VisibleLevel, out offset);

            try
            {
                using (IDbConnection conn = ctx.NewConnection(true))
                {
                    using (IDbCommand cmd = ctx.GetSqlCommand(sql, null, conn))
                    {
                        UpdateDataGridResult(cmd);
                    }
                }
            }
            catch (Exception t)
            {
                ctx.OnLog(ctx.GetExceptionMessage(t), LogStatus.Error, sql);
                Db2SrcDataSetController.ShowErrorPosition(t, textBoxCondition, ctx, offset);
            }
            finally
            {
                UpdateTextBlockWarningLimit();
                GC.Collect(0);
            }
            _fetched = true;
        }