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); } }
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); } }
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); } }
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; } }
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; } }
private void FindPreviousCommand_Executed(object sender, ExecutedRoutedEventArgs e) { DataGridControllerResult.SearchGridTextBackward(); }
private void FindNextCommand_Executed(object sender, ExecutedRoutedEventArgs e) { DataGridControllerResult.SearchGridTextForward(); }
//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(); }
private void buttonAdd_Click(object sender, RoutedEventArgs e) { DataGridControllerResult.NewRow(); }
private void ButtonRevert_Click(object sender, RoutedEventArgs e) { DataGridControllerResult.Revert(); //Fetch(true); }
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; }