private void Execute(string sql, bool remoteCommand = false) { try { if (string.IsNullOrEmpty(sql)) { return; } if (!remoteCommand) { EventBusFactory.Default.Publish(new RemoteExecuteCommand(Id, sql)); } var session = new Session(_databaseServer.GetDataLayer()); if (sql.StartsWith("select", StringComparison.OrdinalIgnoreCase)) { gridView.Columns.Clear(); XPDataView dv = new XPDataView(); SelectedData data = session.ExecuteQueryWithMetadata(sql); foreach (var row in data.ResultSet[0].Rows) { dv.AddProperty((string)row.Values[0], DBColumn.GetType((DBColumnType)Enum.Parse(typeof(DBColumnType), (string)row.Values[2]))); } dv.LoadData(new SelectedData(data.ResultSet[1])); //如果包含多个结果将丢弃 gridControl.DataSource = dv; PrintLog($"数据行数={dv.Count}"); } else { var count = session.ExecuteNonQuery(sql); PrintLog($"受影响行数={count}"); } session.Disconnect(); _tabPage.Appearance.HeaderActive.BackColor = Color.Empty; } catch (Exception ex) { PrintLog($"{ex.Message}{Environment.NewLine}{ex.StackTrace}"); _tabPage.Appearance.HeaderActive.BackColor = Color.Brown; } }