/// <summary> /// Shows the form as a dialog with the specified database field. /// </summary> /// <param name="owner">The owner window.</param> /// <param name="field">The database field.</param> /// <returns>The dialog result.</returns> public DialogResult ShowDialog(IWin32Window owner, DbField field) { // Select the server an table. this.control.Field = field; // Set the dialog name. this.Text = "{0} Field Properties".FormatWith(field.DisplayName); // Open the dialog. return base.ShowDialog(owner); }
/// <summary> /// Opens the dialog and compares a database field with the information received from a database server. /// </summary> /// <param name="owner">The owner window.</param> /// <param name="field">The database field.</param> /// <param name="name">The field name.</param> /// <param name="type">The field type.</param> /// <param name="length">The field length.</param> /// <param name="precision">The field precision.</param> /// <param name="scale">The field scale.</param> /// <param name="nullable">The field is nullable.</param> /// <returns>The dialog result.</returns> public DialogResult ShowDialog( IWin32Window owner, DbField field, string name, string type, int length, int precision, int scale, bool? nullable) { // Set the control. this.control.Compare(field, name, type, length, precision, scale, nullable); // Open the dialog. return base.ShowDialog(owner); }
/// <summary> /// Compares a database field with the information received from a database server. /// </summary> /// <param name="field">The database field.</param> /// <param name="name">The field name.</param> /// <param name="type">The field type.</param> /// <param name="length">The field length.</param> /// <param name="precision">The field precision.</param> /// <param name="scale">The field scale.</param> /// <param name="nullable">The field is nullable.</param> public void Compare( DbField field, string name, string type, int length, int precision, int scale, bool? nullable) { this.rowName.Cells[0].Value = field.DisplayName; this.rowName.Cells[1].Value = name; this.rowTypeLocal.Cells[0].Value = field.LocalType; this.rowTypeDatabase.Cells[0].Value = field.DatabaseType; this.rowTypeDatabase.Cells[1].Value = type; this.rowLength.Cells[1].Value = length; this.rowPrecision.Cells[1].Value = precision; this.rowScale.Cells[1].Value = scale; this.rowNullable.Cells[0].Value = field.IsNullable ? "Yes" : "No"; this.rowNullable.Cells[1].Value = nullable.HasValue ? nullable.Value ? "Yes" : "No" : "(unknown)"; }
// Protected methods. /// <summary> /// An event handler called when a new field has been set. /// </summary> /// <param name="oldField">The old field.</param> /// <param name="newField">The new field.</param> protected virtual void OnFieldSet(DbField oldField, DbField newField) { // If the field has not changed, do nothing. if (oldField == newField) return; if (null != newField) { this.labelTitle.Text = "No field selected"; this.tabControl.Visible = false; } else { this.labelTitle.Text = newField.DisplayName; this.textBoxNameLocal.Text = newField.LocalName; this.textBoxNameDatabase.Text = newField.HasName ? newField.GetDatabaseName() : string.Empty; this.textBoxNameDisplay.Text = newField.DisplayName; this.textBoxTypeLocal.Text = newField.LocalType; this.textBoxTypeDatabase.Text = newField.DatabaseType; this.textBoxDescription.Text = newField.Description; this.checkBoxNullable.Checked = newField.IsNullable; this.checkBoxConfigured.Checked = newField.HasName; this.pictureBox.Image = newField.HasName ? Resources.FieldSuccess_32 : Resources.FieldWarning_32; this.tabControl.Visible = true; } this.tabControl.SelectedTab = this.tabPageGeneral; if (this.Focused) { this.textBoxNameLocal.Select(); this.textBoxNameLocal.SelectionStart = 0; this.textBoxNameLocal.SelectionLength = 0; } }
/// <summary> /// Returns the full database field name for the given table, local field name and default database. /// </summary> /// <param name="field">The field.</param> /// <param name="tableName">The table name.</param> /// <returns>The field name as a string.</returns> private static string GetFieldName(DbField field, string tableName) { // Return the field name made of the database name, schema name, table name, and field name. return "{0}.[{1}]".FormatWith(tableName, field.GetDatabaseName()); }