Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControls / SqlDataSourceRefreshSchemaForm.cs / 1 / SqlDataSourceRefreshSchemaForm.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design.WebControls {
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Data;
using System.Data;
using System.Design;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using System.Web.UI.Design.Util;
using System.Web.UI.WebControls;
using System.Collections.Generic;
///
/// The SqlDataSource Refresh Schema form. This guides the user through
/// the process of gathering data in order to be able to refresh schema.
///
internal class SqlDataSourceRefreshSchemaForm : DesignerForm {
private System.Windows.Forms.TextBox _commandTextBox;
private System.Windows.Forms.Label _helpLabel;
private System.Windows.Forms.Button _cancelButton;
private System.Windows.Forms.Label _commandLabel;
private System.Windows.Forms.Button _okButton;
private System.Windows.Forms.DataGridView _parametersDataGridView;
private System.Windows.Forms.Label _parametersLabel;
private SqlDataSourceDesigner _sqlDataSourceDesigner;
private SqlDataSource _sqlDataSource;
private string _connectionString;
private string _providerName;
private string _selectCommand;
private SqlDataSourceCommandType _selectCommandType;
public SqlDataSourceRefreshSchemaForm(IServiceProvider serviceProvider, SqlDataSourceDesigner sqlDataSourceDesigner, ParameterCollection parameters)
: base(serviceProvider) {
Debug.Assert(sqlDataSourceDesigner != null);
_sqlDataSourceDesigner = sqlDataSourceDesigner;
_sqlDataSource = (SqlDataSource)_sqlDataSourceDesigner.Component;
_connectionString = _sqlDataSourceDesigner.ConnectionString;
_providerName = _sqlDataSourceDesigner.ProviderName;
_selectCommand = _sqlDataSourceDesigner.SelectCommand;
_selectCommandType = _sqlDataSource.SelectCommandType;
InitializeComponent();
InitializeUI();
// Populate TypeCode combobox
Array typeCodes = Enum.GetValues(typeof(TypeCode));
Array.Sort(typeCodes, new TypeCodeComparer());
foreach (TypeCode typeCode in typeCodes) {
((DataGridViewComboBoxColumn)_parametersDataGridView.Columns[1]).Items.Add(typeCode);
}
// Set up grid
Debug.Assert(parameters != null && parameters.Count > 0, "Expected at least one parameter");
ArrayList parameterItems = new ArrayList(parameters.Count);
foreach (Parameter p in parameters) {
parameterItems.Add(new ParameterItem(p));
}
_parametersDataGridView.DataSource = parameterItems;
// Set command text
_commandTextBox.Text = _selectCommand;
_commandTextBox.Select(0, 0);
}
protected override string HelpTopic {
get {
return "net.Asp.SqlDataSource.RefreshSchema";
}
}
#region Windows Form Designer generated code
private void InitializeComponent() {
System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewComboBoxColumn dataGridViewComboBoxColumn11 = new System.Windows.Forms.DataGridViewComboBoxColumn();
System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this._parametersDataGridView = new System.Windows.Forms.DataGridView();
this._okButton = new System.Windows.Forms.Button();
this._commandTextBox = new System.Windows.Forms.TextBox();
this._commandLabel = new System.Windows.Forms.Label();
this._helpLabel = new System.Windows.Forms.Label();
this._cancelButton = new System.Windows.Forms.Button();
this._parametersLabel = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// _helpLabel
//
this._helpLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));
this._helpLabel.Location = new System.Drawing.Point(12, 12);
this._helpLabel.Name = "_helpLabel";
this._helpLabel.Size = new System.Drawing.Size(448, 47);
this._helpLabel.TabIndex = 10;
//
// _commandLabel
//
this._commandLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));
this._commandLabel.Location = new System.Drawing.Point(12, 64);
this._commandLabel.Name = "_commandLabel";
this._commandLabel.Size = new System.Drawing.Size(448, 16);
this._commandLabel.TabIndex = 20;
//
// _commandTextBox
//
this._commandTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));
this._commandTextBox.BackColor = System.Drawing.SystemColors.Control;
this._commandTextBox.Location = new System.Drawing.Point(12, 82);
this._commandTextBox.Multiline = true;
this._commandTextBox.Name = "_commandTextBox";
this._commandTextBox.ReadOnly = true;
this._commandTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this._commandTextBox.Size = new System.Drawing.Size(448, 50);
this._commandTextBox.TabIndex = 30;
//
// _parametersLabel
//
this._parametersLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));
this._parametersLabel.Location = new System.Drawing.Point(13, 142);
this._parametersLabel.Name = "_parametersLabel";
this._parametersLabel.Size = new System.Drawing.Size(448, 16);
this._parametersLabel.TabIndex = 40;
//
// _parametersDataGridView
//
this._parametersDataGridView.AllowUserToAddRows = false;
this._parametersDataGridView.AllowUserToDeleteRows = false;
this._parametersDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this._parametersDataGridView.AutoGenerateColumns = false;
this._parametersDataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
dataGridViewTextBoxColumn11.DataPropertyName = "Name";
dataGridViewTextBoxColumn11.DefaultCellStyle = dataGridViewCellStyle11;
dataGridViewTextBoxColumn11.Name = "_parameterNameColumn";
dataGridViewTextBoxColumn11.ReadOnly = true;
dataGridViewTextBoxColumn11.ValueType = typeof(string);
dataGridViewComboBoxColumn11.DataPropertyName = "Type";
dataGridViewComboBoxColumn11.DefaultCellStyle = dataGridViewCellStyle11;
dataGridViewComboBoxColumn11.Name = "_parameterTypeColumn";
dataGridViewComboBoxColumn11.ValueType = typeof(string);
dataGridViewTextBoxColumn12.DataPropertyName = "DefaultValue";
dataGridViewTextBoxColumn12.DefaultCellStyle = dataGridViewCellStyle11;
dataGridViewTextBoxColumn12.Name = "_parameterValueColumn";
dataGridViewTextBoxColumn12.ValueType = typeof(string);
this._parametersDataGridView.EditMode = DataGridViewEditMode.EditOnEnter;
this._parametersDataGridView.Columns.Add(dataGridViewTextBoxColumn11);
this._parametersDataGridView.Columns.Add(dataGridViewComboBoxColumn11);
this._parametersDataGridView.Columns.Add(dataGridViewTextBoxColumn12);
this._parametersDataGridView.Location = new System.Drawing.Point(12, 160);
this._parametersDataGridView.MultiSelect = false;
this._parametersDataGridView.Name = "_parametersDataGridView";
this._parametersDataGridView.RowHeadersVisible = false;
this._parametersDataGridView.Size = new System.Drawing.Size(448, 156);
this._parametersDataGridView.TabIndex = 50;
//
// _okButton
//
this._okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this._okButton.Location = new System.Drawing.Point(304, 331);
this._okButton.Name = "_okButton";
this._okButton.TabIndex = 60;
this._okButton.Click += new System.EventHandler(this.OnOkButtonClick);
//
// _cancelButton
//
this._cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this._cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this._cancelButton.Location = new System.Drawing.Point(385, 331);
this._cancelButton.Name = "_cancelButton";
this._cancelButton.TabIndex = 70;
//
// SqlDataSourceRefreshSchemaForm
//
this.AcceptButton = this._okButton;
this.CancelButton = this._cancelButton;
this.ClientSize = new System.Drawing.Size(472, 366);
this.Controls.Add(this._parametersLabel);
this.Controls.Add(this._parametersDataGridView);
this.Controls.Add(this._cancelButton);
this.Controls.Add(this._commandLabel);
this.Controls.Add(this._helpLabel);
this.Controls.Add(this._okButton);
this.Controls.Add(this._commandTextBox);
this.MinimumSize = new System.Drawing.Size(472, 366);
this.Name = "SqlDataSourceRefreshSchemaForm";
this.SizeGripStyle = SizeGripStyle.Show;
InitializeForm();
this.ResumeLayout(false);
}
#endregion
///
/// Called after InitializeComponent to perform additional actions that
/// are not supported by the designer.
///
private void InitializeUI() {
Text = SR.GetString(SR.SqlDataSourceRefreshSchemaForm_Title, _sqlDataSource.ID);
_helpLabel.Text = SR.GetString(SR.SqlDataSourceRefreshSchemaForm_HelpLabel);
_commandLabel.Text = SR.GetString(SR.SqlDataSource_General_PreviewLabel);
_parametersLabel.Text = SR.GetString(SR.SqlDataSourceRefreshSchemaForm_ParametersLabel);
_parametersDataGridView.AccessibleName = SR.GetString(SR.SqlDataSourceParameterValueEditorForm_ParametersGridAccessibleName);
_okButton.Text = SR.GetString(SR.OK);
_cancelButton.Text = SR.GetString(SR.Cancel);
_parametersDataGridView.Columns[0].HeaderText = SR.GetString(SR.SqlDataSourceParameterValueEditorForm_ParameterColumnHeader);
_parametersDataGridView.Columns[1].HeaderText = SR.GetString(SR.SqlDataSourceParameterValueEditorForm_TypeColumnHeader);
_parametersDataGridView.Columns[2].HeaderText = SR.GetString(SR.SqlDataSourceParameterValueEditorForm_ValueColumnHeader);
}
private void OnOkButtonClick(object sender, EventArgs e) {
// Collect the parameters and attempt to get schema
ICollection editedParameters = (ICollection)_parametersDataGridView.DataSource;
ParameterCollection parameters = new ParameterCollection();
foreach (ParameterItem p in editedParameters) {
parameters.Add(new Parameter(p.Name, p.Type, p.DefaultValue));
}
bool success = _sqlDataSourceDesigner.RefreshSchema(new DesignerDataConnection(String.Empty, _providerName, _connectionString), _selectCommand, _selectCommandType, parameters, false);
if (success) {
DialogResult = DialogResult.OK;
Close();
}
}
protected override void OnVisibleChanged(EventArgs e) {
base.OnVisibleChanged(e);
if (Visible) {
// Calculate a better column width to stretch the columns out a little
int columnWidth = (int)Math.Floor((double)(_parametersDataGridView.ClientSize.Width - SystemInformation.VerticalScrollBarWidth - 2 * SystemInformation.Border3DSize.Width) / 3.5D);
_parametersDataGridView.Columns[0].Width = (int)(columnWidth * 1.5);
_parametersDataGridView.Columns[1].Width = columnWidth;
_parametersDataGridView.Columns[2].Width = columnWidth;
_parametersDataGridView.AutoResizeColumnHeadersHeight();
for (int rowIndex = 0; rowIndex < _parametersDataGridView.Rows.Count; rowIndex++) {
_parametersDataGridView.AutoResizeRow(rowIndex, DataGridViewAutoSizeRowMode.AllCells);
}
}
}
private sealed class ParameterItem {
private string _name;
private TypeCode _type;
private string _defaultValue;
public ParameterItem(Parameter p) {
_name = p.Name;
_type = p.Type;
_defaultValue = p.DefaultValue;
}
public string Name {
get {
return _name;
}
}
public TypeCode Type {
get {
return _type;
}
set {
_type = value;
}
}
public string DefaultValue {
get {
return _defaultValue;
}
set {
_defaultValue = value;
}
}
}
private sealed class TypeCodeComparer : IComparer {
int IComparer.Compare(object x, object y) {
return String.Compare(Enum.GetName(typeof(TypeCode), x), Enum.GetName(typeof(TypeCode), y), StringComparison.OrdinalIgnoreCase);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FileInfo.cs
- Compiler.cs
- XmlSyndicationContent.cs
- ServiceMemoryGates.cs
- mediaeventargs.cs
- EntityDataSourceState.cs
- SignatureToken.cs
- ToolStripRendererSwitcher.cs
- Literal.cs
- CollaborationHelperFunctions.cs
- ComponentEditorPage.cs
- ProtectedConfigurationProviderCollection.cs
- ContractMapping.cs
- ConnectionsZone.cs
- MexHttpsBindingCollectionElement.cs
- DebugInfoGenerator.cs
- Timeline.cs
- SafeBitVector32.cs
- Nodes.cs
- KerberosReceiverSecurityToken.cs
- DBConnection.cs
- DataFormats.cs
- XamlClipboardData.cs
- SoapWriter.cs
- FullTrustAssembly.cs
- FixedTextSelectionProcessor.cs
- SafeEventLogWriteHandle.cs
- Comparer.cs
- _DynamicWinsockMethods.cs
- DateTimePicker.cs
- DirectoryObjectSecurity.cs
- WebPartDeleteVerb.cs
- DataGridSortCommandEventArgs.cs
- MultiPageTextView.cs
- ObjectTypeMapping.cs
- ChannelToken.cs
- PersonalizationProvider.cs
- ColumnPropertiesGroup.cs
- IndexOutOfRangeException.cs
- ApplicationSettingsBase.cs
- WebPartDescription.cs
- Control.cs
- StateMachineExecutionState.cs
- RelationshipSet.cs
- Compiler.cs
- ProgressBarRenderer.cs
- DataGridViewComboBoxEditingControl.cs
- IntSecurity.cs
- SymbolDocumentGenerator.cs
- CategoryEditor.cs
- SecurityTokenException.cs
- UserPersonalizationStateInfo.cs
- DomainLiteralReader.cs
- BitmapDecoder.cs
- State.cs
- AssemblyHash.cs
- TextBoxDesigner.cs
- DataGridTableCollection.cs
- SimpleTextLine.cs
- LogicalMethodInfo.cs
- AssertSection.cs
- ExpressionBuilderContext.cs
- TemplateParser.cs
- XmlSerializationWriter.cs
- BrowserCapabilitiesCodeGenerator.cs
- PageFunction.cs
- WebPartUserCapability.cs
- BaseAppDomainProtocolHandler.cs
- SqlDependencyListener.cs
- XhtmlConformanceSection.cs
- DesignerCategoryAttribute.cs
- TimelineGroup.cs
- BinHexDecoder.cs
- SchemaTableOptionalColumn.cs
- XNodeValidator.cs
- WmpBitmapDecoder.cs
- DefaultTraceListener.cs
- FixedSOMLineRanges.cs
- _CacheStreams.cs
- TypeConverterValueSerializer.cs
- EntityDataSourceValidationException.cs
- PrintDocument.cs
- ToolStripSeparatorRenderEventArgs.cs
- MemberExpression.cs
- EnlistmentState.cs
- SecurityTokenResolver.cs
- ObjectCloneHelper.cs
- SqlCharStream.cs
- basenumberconverter.cs
- WebSysDisplayNameAttribute.cs
- ViewRendering.cs
- AssemblyUtil.cs
- RowsCopiedEventArgs.cs
- ChineseLunisolarCalendar.cs
- DataGridViewRowConverter.cs
- InlinedAggregationOperator.cs
- ServiceModelConfiguration.cs
- baseaxisquery.cs
- BitmapScalingModeValidation.cs
- PinnedBufferMemoryStream.cs