diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/ColumnNames.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/ColumnNames.cs index 3a63ee13f8..98707d9b79 100644 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/ColumnNames.cs +++ b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/ColumnNames.cs @@ -25,5 +25,10 @@ namespace SharpDbTools.Model public const string Name = "name"; public const string ConnectionString = "connectionString"; public const string TableName = "TABLE_NAME"; + public static string[] TableTableFieldsToDisplay = + new string [] {"COLUMN_NAME", "DATATYPE", + "LENGTH", "PRECISION", "SCALE", "NULLABLE"}; + public static string[] TableTableFieldsColumnHeaders = + new string[] { "Column", "Type", "Length", "Precision", "Scale", "Nullable" }; } } diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfo.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfo.cs index 4454268e82..910d85725a 100644 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfo.cs +++ b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfo.cs @@ -17,6 +17,8 @@ using System.Data; using System.Data.Common; using System.Collections.Generic; +using ICSharpCode.Core; + namespace SharpDbTools.Model { /// @@ -69,6 +71,7 @@ namespace SharpDbTools.Model } catch(ArgumentException) { // see comment below - it is correct to bury this exception + LoggingService.Info("InvariantName property was accessed while undefined" + e); } return invariantName; } @@ -104,6 +107,7 @@ namespace SharpDbTools.Model // this simply indicates that this attribute was not defined when the // DbModelInfo was saved, returning null makes sense here - so it is // correct to bury this exception + LoggingService.Info("InvariantName property was accessed while undefined" + e); } return connectionString; } diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfoService.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfoService.cs index 1b45992a73..27970e209b 100644 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfoService.cs +++ b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/DbModelInfoService.cs @@ -79,8 +79,12 @@ namespace SharpDbTools.Model DataTable columnTable = modelInfo.Tables[TableNames.Columns]; DataRow[] columnsMetadata = columnTable.Select(ColumnNames.TableName + "='" + tableName + "'"); LoggingService.Debug("found: " + columnsMetadata.Length + " columns belonging to table: " + tableName); - DataTable tableInfo = columnTable.Copy(); - tableInfo.Clear(); + DataTable tableInfo = new DataTable(); + DataColumnCollection cols = columnTable.Columns; + foreach (DataColumn c in cols) { + DataColumn nc = new DataColumn(c.ColumnName, c.DataType); + tableInfo.Columns.Add(nc); + } foreach (DataRow r in columnsMetadata) { DataRow newRow = tableInfo.NewRow(); newRow.ItemArray = r.ItemArray; diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/TableNames.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/TableNames.cs index b08b7bcbcc..face9debbf 100644 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/Model/TableNames.cs +++ b/src/AddIns/Misc/SharpDbTools/Project/Src/Model/TableNames.cs @@ -24,6 +24,6 @@ namespace SharpDbTools.Model public const string MetaDataCollections = "MetaDataCollections"; public const string ConnectionInfo = "ConnectionInfo"; public static string[] PrimaryObjects = new string[] { "Tables", "Procedures", "Functions", "Views", "Users" }; - public static string Columns = "Columns"; + public const string Columns = "Columns"; } } diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/ServerBrowserTool.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/ServerBrowserTool.cs index 993e982a85..53b7130ff6 100644 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/ServerBrowserTool.cs +++ b/src/AddIns/Misc/SharpDbTools/Project/Src/ServerBrowserTool.cs @@ -381,8 +381,11 @@ namespace SharpDbTools string tableName = s.TreeNode.Text; LoggingService.Debug("describe table clicked for: " + logicalConnectionName + " and table name: " + tableName); DataTable tableInfo = DbModelInfoService.GetTableInfo(logicalConnectionName, tableName); + //DataSet dbModelInfo = DbModelInfoService.GetDbModelInfo(logicalConnectionName); // TableDescribeForm describeForm = new TableDescribeForm(tableInfo); // describeForm.Show(); + TableDescribeViewContent tableDescribeViewContent = new TableDescribeViewContent(tableInfo, tableName); + WorkbenchSingleton.Workbench.ShowView(tableDescribeViewContent); } } diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.Designer.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.Designer.cs deleted file mode 100644 index ecf6ba7ada..0000000000 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.Designer.cs +++ /dev/null @@ -1,80 +0,0 @@ -/* - * User: dickon - * Date: 30/08/2006 - * Time: 07:27 - * - */ -namespace SharpDbTools.Viewer -{ - partial class TableDescribeForm : System.Windows.Forms.Form - { - /// - /// Designer variable used to keep track of non-visual components. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Disposes resources used by the form. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing) { - if (components != null) { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - /// - /// This method is required for Windows Forms designer support. - /// Do not change the method contents inside the source code editor. The Forms designer might - /// not be able to load this method if it was changed manually. - /// - private void InitializeComponent() - { - this.closeButton = new System.Windows.Forms.Button(); - this.tableInfoDataGridView = new System.Windows.Forms.DataGridView(); - ((System.ComponentModel.ISupportInitialize)(this.tableInfoDataGridView)).BeginInit(); - this.SuspendLayout(); - // - // closeButton - // - this.closeButton.Location = new System.Drawing.Point(108, 502); - this.closeButton.Name = "closeButton"; - this.closeButton.Size = new System.Drawing.Size(79, 23); - this.closeButton.TabIndex = 1; - this.closeButton.Text = "Close"; - this.closeButton.UseVisualStyleBackColor = true; - this.closeButton.Click += new System.EventHandler(this.CloseButtonClick); - // - // dataGridView1 - // - this.tableInfoDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.tableInfoDataGridView.Location = new System.Drawing.Point(2, 1); - this.tableInfoDataGridView.Name = "dataGridView1"; - this.tableInfoDataGridView.Size = new System.Drawing.Size(307, 495); - this.tableInfoDataGridView.TabIndex = 2; - // - // TableDescribeForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(312, 532); - this.Controls.Add(this.tableInfoDataGridView); - this.Controls.Add(this.closeButton); - this.Name = "TableDescribeForm"; - this.Text = "Describe"; - ((System.ComponentModel.ISupportInitialize)(this.tableInfoDataGridView)).EndInit(); - this.ResumeLayout(false); - } - private System.Windows.Forms.DataGridView tableInfoDataGridView; - private System.Windows.Forms.Button closeButton; - - void CloseButtonClick(object sender, System.EventArgs e) - { - this.Close(); - } - } -} diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.cs deleted file mode 100644 index 73ac0cf286..0000000000 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.cs +++ /dev/null @@ -1,33 +0,0 @@ -/* - * User: dickon - * Date: 30/08/2006 - * Time: 07:27 - * - */ - -using System; -using System.Drawing; -using System.Windows.Forms; - -using System.Data; - -namespace SharpDbTools.Viewer -{ - /// - /// Description of TableDescribeForm. - /// - public partial class TableDescribeForm - { - DataTable tableInfo; - - public TableDescribeForm(DataTable tableInfo) - { - // - // The InitializeComponent() call is required for Windows Forms designer support. - // - InitializeComponent(); - this.tableInfo = tableInfo; - this.tableInfoDataGridView.DataSource = tableInfo; - } - } -} diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.resx b/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.resx deleted file mode 100644 index 7080a7d118..0000000000 --- a/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeViewContent.cs b/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeViewContent.cs new file mode 100644 index 0000000000..682a82e87d --- /dev/null +++ b/src/AddIns/Misc/SharpDbTools/Project/Src/Viewer/TableDescribeViewContent.cs @@ -0,0 +1,72 @@ +/* + * User: dickon + * Date: 06/09/2006 + * Time: 08:43 + * + */ + +using System; +using System.Data; +using System.Windows.Forms; + +using ICSharpCode.SharpDevelop.Gui; +using SharpDbTools.Model; + + +namespace SharpDbTools.Viewer +{ + /// + /// Description of TableDescribeViewContent. + /// + public class TableDescribeViewContent : AbstractViewContent + { + DataTable tableInfo; + DataGridView tableInfoDataGridView; + + + public TableDescribeViewContent(DataTable tableInfo, string tableName) : base("table: " + tableName) + { + this.tableInfo = tableInfo; + this.tableInfoDataGridView = new DataGridView(); + DataGridView v = this.tableInfoDataGridView; + + v.AutoGenerateColumns = false; + v.AutoSize = true; + + v.DataSource = this.tableInfo; + //v.DataMember = TableNames.Columns; + + string[] fieldsToDisplay = ColumnNames.TableTableFieldsToDisplay; + string[] fieldColumnNames = ColumnNames.TableTableFieldsColumnHeaders; + for (int i = 0; i < fieldsToDisplay.Length; i++ ) { + DataGridViewColumn c = new DataGridViewTextBoxColumn(); + c.DataPropertyName = fieldsToDisplay[i]; + c.Name = fieldColumnNames[i]; + v.Columns.Add(c); + } + v.AllowUserToAddRows = false; + v.AllowUserToDeleteRows = false; + v.AllowUserToResizeRows = false; + v.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; + v.AutoResizeColumns(); + } + + public override System.Windows.Forms.Control Control { + get { + return this.tableInfoDataGridView; + } + } + + public override bool IsReadOnly { + get { + return true; + } + } + + public override bool IsViewOnly { + get { + return true; + } + } + } +}