public SqlDataSourceConfigureFilterForm(SqlDataSourceDesigner sqlDataSourceDesigner, SqlDataSourceTableQuery tableQuery)
     : base(sqlDataSourceDesigner.Component.Site)
 {
     this._dataSource = (SqlDataSource) sqlDataSourceDesigner.Component;
     this._sqlDataSourceDesigner = sqlDataSourceDesigner;
     this._tableQuery = tableQuery.Clone();
     this.InitializeComponent();
     this.InitializeUI();
     _parameterEditors = this.CreateParameterList();
     foreach (ParameterEditor editor in _parameterEditors.Values)
     {
         editor.Visible = false;
         this._propertiesPanel.Controls.Add(editor);
         this._sourceComboBox.Items.Add(editor);
         editor.ParameterChanged += new EventHandler(this.OnParameterChanged);
     }
     this._sourceComboBox.InvalidateDropDownWidth();
     Cursor current = Cursor.Current;
     try
     {
         Cursor.Current = Cursors.WaitCursor;
         foreach (DesignerDataColumn column in tableQuery.DesignerDataTable.Columns)
         {
             this._columnsComboBox.Items.Add(new ColumnItem(column));
         }
         this._columnsComboBox.InvalidateDropDownWidth();
         foreach (SqlDataSourceFilterClause clause in this._tableQuery.FilterClauses)
         {
             FilterClauseItem item = new FilterClauseItem(this._sqlDataSourceDesigner.Component.Site, this._tableQuery, clause, (SqlDataSource) this._sqlDataSourceDesigner.Component);
             this._whereClausesListView.Items.Add(item);
             item.Refresh();
         }
         if (this._whereClausesListView.Items.Count > 0)
         {
             this._whereClausesListView.Items[0].Selected = true;
             this._whereClausesListView.Items[0].Focused = true;
         }
         this._okButton.Enabled = false;
         this.UpdateDeleteButton();
         this.UpdateOperators();
     }
     finally
     {
         Cursor.Current = current;
     }
 }
 public SqlDataSourceTableQuery Clone()
 {
     SqlDataSourceTableQuery query = new SqlDataSourceTableQuery(this.DesignerDataConnection, this.DesignerDataTable) {
         Distinct = this.Distinct,
         AsteriskField = this.AsteriskField
     };
     foreach (DesignerDataColumn column in this.Fields)
     {
         query.Fields.Add(column);
     }
     foreach (SqlDataSourceFilterClause clause in this.FilterClauses)
     {
         query.FilterClauses.Add(clause);
     }
     foreach (SqlDataSourceOrderClause clause2 in this.OrderClauses)
     {
         query.OrderClauses.Add(clause2);
     }
     return query;
 }
        public SqlDataSourceTableQuery Clone()
        {
            SqlDataSourceTableQuery query = new SqlDataSourceTableQuery(this.DesignerDataConnection, this.DesignerDataTable)
            {
                Distinct      = this.Distinct,
                AsteriskField = this.AsteriskField
            };

            foreach (DesignerDataColumn column in this.Fields)
            {
                query.Fields.Add(column);
            }
            foreach (SqlDataSourceFilterClause clause in this.FilterClauses)
            {
                query.FilterClauses.Add(clause);
            }
            foreach (SqlDataSourceOrderClause clause2 in this.OrderClauses)
            {
                query.OrderClauses.Add(clause2);
            }
            return(query);
        }
 private void OnTablesComboBoxSelectedIndexChanged(object sender, EventArgs e)
 {
     TableItem selectedItem = this._tablesComboBox.SelectedItem as TableItem;
     if ((selectedItem == null) || (this._previousTable != selectedItem))
     {
         Cursor current = Cursor.Current;
         this._fieldsCheckedListBox.Items.Clear();
         this._selectDistinctCheckBox.Checked = false;
         this._generateMode = 0;
         try
         {
             Cursor.Current = Cursors.WaitCursor;
             if (selectedItem != null)
             {
                 ICollection columns = selectedItem.DesignerDataTable.Columns;
                 this._tableQuery = new SqlDataSourceTableQuery(this._dataConnection, selectedItem.DesignerDataTable);
                 this._fieldsCheckedListBox.Items.Add(new ColumnItem());
                 foreach (DesignerDataColumn column in columns)
                 {
                     this._fieldsCheckedListBox.Items.Add(new ColumnItem(column));
                 }
                 this._tableQuery.AsteriskField = true;
                 this._fieldsCheckedListBox.SetItemChecked(0, true);
             }
             else
             {
                 this._tableQuery = null;
             }
             this._previousTable = selectedItem;
         }
         catch (Exception exception)
         {
             UIServiceHelper.ShowError(base.ServiceProvider, exception, System.Design.SR.GetString("SqlDataSourceConfigureSelectPanel_CouldNotGetTableSchema"));
         }
         finally
         {
             UIHelper.UpdateFieldsCheckedListBoxColumnWidth(this._fieldsCheckedListBox);
             this.UpdateEnabledUI();
             this.UpdatePreview();
             Cursor.Current = current;
         }
     }
 }
 private bool LoadTableQueryState(Hashtable tableQueryState)
 {
     SqlDataSource component = this._sqlDataSourceDesigner.Component as SqlDataSource;
     int num = (int) tableQueryState["Conn_ConnectionStringHash"];
     string str = (string) tableQueryState["Conn_ProviderName"];
     if ((num != this._dataConnection.ConnectionString.GetHashCode()) || (str != this._dataConnection.ProviderName))
     {
         return false;
     }
     int num2 = (int) tableQueryState["Generate_Mode"];
     string str2 = (string) tableQueryState["Table_Name"];
     TableItem item = null;
     foreach (TableItem item2 in this._tablesComboBox.Items)
     {
         if (item2.DesignerDataTable.Name == str2)
         {
             item = item2;
             break;
         }
     }
     if (item == null)
     {
         return false;
     }
     DesignerDataTableBase designerDataTable = item.DesignerDataTable;
     int num3 = (int) tableQueryState["Fields_Count"];
     ArrayList list = new ArrayList();
     for (int i = 0; i < num3; i++)
     {
         string columnName = (string) tableQueryState["Fields_FieldName" + i.ToString(CultureInfo.InvariantCulture)];
         DesignerDataColumn columnFromTable = this.GetColumnFromTable(designerDataTable, columnName);
         if (columnFromTable == null)
         {
             return false;
         }
         list.Add(columnFromTable);
     }
     bool flag = (bool) tableQueryState["AsteriskField"];
     bool flag2 = (bool) tableQueryState["Distinct"];
     List<Parameter> list2 = new List<Parameter>();
     foreach (ICloneable cloneable in component.SelectParameters)
     {
         list2.Add((Parameter) cloneable.Clone());
     }
     bool flag3 = SqlDataSourceDesigner.SupportsNamedParameters(SqlDataSourceDesigner.GetDbProviderFactory(this._dataConnection.ProviderName));
     int num5 = (int) tableQueryState["Filters_Count"];
     ArrayList list3 = new ArrayList();
     for (int j = 0; j < num5; j++)
     {
         string str4 = (string) tableQueryState["Filters_FieldName" + j.ToString(CultureInfo.InvariantCulture)];
         string operatorFormat = (string) tableQueryState["Filters_OperatorFormat" + j.ToString(CultureInfo.InvariantCulture)];
         bool isBinary = (bool) tableQueryState["Filters_IsBinary" + j.ToString(CultureInfo.InvariantCulture)];
         string str6 = (string) tableQueryState["Filters_Value" + j.ToString(CultureInfo.InvariantCulture)];
         string name = (string) tableQueryState["Filters_ParameterName" + j.ToString(CultureInfo.InvariantCulture)];
         DesignerDataColumn designerDataColumn = this.GetColumnFromTable(designerDataTable, str4);
         if (designerDataColumn == null)
         {
             return false;
         }
         Parameter parameter = null;
         if (name != null)
         {
             if (flag3)
             {
                 foreach (Parameter parameter2 in list2)
                 {
                     if (parameter2.Name == name)
                     {
                         parameter = parameter2;
                         break;
                     }
                 }
                 if (parameter != null)
                 {
                     list2.Remove(parameter);
                 }
                 else
                 {
                     parameter = new Parameter(name);
                 }
             }
             else if (list2.Count > 0)
             {
                 parameter = list2[0];
                 list2.RemoveAt(0);
             }
             else
             {
                 parameter = new Parameter(name);
             }
         }
         list3.Add(new SqlDataSourceFilterClause(this._dataConnection, designerDataTable, designerDataColumn, operatorFormat, isBinary, str6, parameter));
     }
     int num7 = (int) tableQueryState["Orders_Count"];
     ArrayList list4 = new ArrayList();
     for (int k = 0; k < num7; k++)
     {
         string str8 = (string) tableQueryState["Orders_FieldName" + k.ToString(CultureInfo.InvariantCulture)];
         bool isDescending = (bool) tableQueryState["Orders_IsDescending" + k.ToString(CultureInfo.InvariantCulture)];
         DesignerDataColumn column3 = this.GetColumnFromTable(designerDataTable, str8);
         if (column3 == null)
         {
             return false;
         }
         list4.Add(new SqlDataSourceOrderClause(this._dataConnection, designerDataTable, column3, isDescending));
     }
     SqlDataSourceTableQuery query = new SqlDataSourceTableQuery(this._dataConnection, designerDataTable);
     foreach (DesignerDataColumn column4 in list)
     {
         query.Fields.Add(column4);
     }
     query.AsteriskField = flag;
     query.Distinct = flag2;
     foreach (SqlDataSourceFilterClause clause in list3)
     {
         query.FilterClauses.Add(clause);
     }
     foreach (SqlDataSourceOrderClause clause2 in list4)
     {
         query.OrderClauses.Add(clause2);
     }
     bool includeOldValues = num2 == 2;
     string oldValuesFormatString = GetOldValuesFormatString(component, false);
     SqlDataSourceQuery selectQuery = query.GetSelectQuery();
     SqlDataSourceQuery insertQuery = query.GetInsertQuery();
     SqlDataSourceQuery updateQuery = query.GetUpdateQuery(oldValuesFormatString, includeOldValues);
     SqlDataSourceQuery deleteQuery = query.GetDeleteQuery(oldValuesFormatString, includeOldValues);
     if ((selectQuery != null) && (component.SelectCommand != selectQuery.Command))
     {
         return false;
     }
     if (((insertQuery != null) && (component.InsertCommand.Trim().Length > 0)) && (component.InsertCommand != insertQuery.Command))
     {
         return false;
     }
     if (((updateQuery != null) && (component.UpdateCommand.Trim().Length > 0)) && (component.UpdateCommand != updateQuery.Command))
     {
         return false;
     }
     if (((deleteQuery != null) && (component.DeleteCommand.Trim().Length > 0)) && (component.DeleteCommand != deleteQuery.Command))
     {
         return false;
     }
     this._tableQuery = new SqlDataSourceTableQuery(this._dataConnection, designerDataTable);
     this._tablesComboBox.SelectedItem = item;
     ArrayList list5 = new ArrayList();
     foreach (DesignerDataColumn column5 in list)
     {
         foreach (ColumnItem item3 in this._fieldsCheckedListBox.Items)
         {
             if (item3.DesignerDataColumn == column5)
             {
                 list5.Add(this._fieldsCheckedListBox.Items.IndexOf(item3));
             }
         }
     }
     foreach (int num9 in list5)
     {
         this._fieldsCheckedListBox.SetItemChecked(num9, true);
     }
     if (flag)
     {
         this._fieldsCheckedListBox.SetItemChecked(0, true);
     }
     this._selectDistinctCheckBox.Checked = flag2;
     this._generateMode = num2;
     foreach (SqlDataSourceFilterClause clause3 in list3)
     {
         this._tableQuery.FilterClauses.Add(clause3);
     }
     foreach (SqlDataSourceOrderClause clause4 in list4)
     {
         this._tableQuery.OrderClauses.Add(clause4);
     }
     return true;
 }
 private bool LoadParsedSqlState()
 {
     SqlDataSource component = (SqlDataSource) this._sqlDataSourceDesigner.Component;
     string[] strArray = SqlDataSourceCommandParser.ParseSqlString(this._sqlDataSourceDesigner.SelectCommand);
     if (strArray == null)
     {
         return false;
     }
     bool flag = false;
     string lastIdentifierPart = SqlDataSourceCommandParser.GetLastIdentifierPart(strArray[strArray.Length - 1]);
     if (lastIdentifierPart == null)
     {
         return false;
     }
     List<string> list = new List<string>();
     for (int i = 0; i < (strArray.Length - 1); i++)
     {
         string str2 = SqlDataSourceCommandParser.GetLastIdentifierPart(strArray[i]);
         if (str2 == null)
         {
             return false;
         }
         if (str2 == "*")
         {
             flag = true;
         }
         else
         {
             if (str2.Length == 0)
             {
                 return false;
             }
             list.Add(str2);
         }
     }
     if (flag && (list.Count != 0))
     {
         return false;
     }
     TableItem item = null;
     foreach (TableItem item2 in this._tablesComboBox.Items)
     {
         if (item2.DesignerDataTable.Name == lastIdentifierPart)
         {
             item = item2;
             break;
         }
     }
     if (item == null)
     {
         return false;
     }
     DesignerDataTableBase designerDataTable = item.DesignerDataTable;
     List<DesignerDataColumn> list2 = new List<DesignerDataColumn>();
     foreach (string str3 in list)
     {
         DesignerDataColumn columnFromTable = this.GetColumnFromTable(designerDataTable, str3);
         if (columnFromTable == null)
         {
             return false;
         }
         list2.Add(columnFromTable);
     }
     bool flag2 = ((component.DeleteCommand.Trim().Length > 0) || (component.InsertCommand.Trim().Length > 0)) || (component.UpdateCommand.Trim().Length > 0);
     if (flag2)
     {
         SqlDataSourceTableQuery query = new SqlDataSourceTableQuery(this._dataConnection, designerDataTable);
         foreach (DesignerDataColumn column2 in list2)
         {
             query.Fields.Add(column2);
         }
         query.AsteriskField = flag;
         SqlDataSourceQuery insertQuery = query.GetInsertQuery();
         string oldValuesFormatString = GetOldValuesFormatString(component, false);
         SqlDataSourceQuery updateQuery = query.GetUpdateQuery(oldValuesFormatString, false);
         SqlDataSourceQuery deleteQuery = query.GetDeleteQuery(oldValuesFormatString, false);
         if (((insertQuery != null) && (component.InsertCommand.Trim().Length > 0)) && (component.InsertCommand != insertQuery.Command))
         {
             return false;
         }
         if (((updateQuery != null) && (component.UpdateCommand.Trim().Length > 0)) && (component.UpdateCommand != updateQuery.Command))
         {
             return false;
         }
         if (((deleteQuery != null) && (component.DeleteCommand.Trim().Length > 0)) && (component.DeleteCommand != deleteQuery.Command))
         {
             return false;
         }
     }
     this._tableQuery = new SqlDataSourceTableQuery(this._dataConnection, designerDataTable);
     this._tablesComboBox.SelectedItem = item;
     ArrayList list3 = new ArrayList();
     foreach (DesignerDataColumn column3 in list2)
     {
         foreach (ColumnItem item3 in this._fieldsCheckedListBox.Items)
         {
             if (item3.DesignerDataColumn == column3)
             {
                 list3.Add(this._fieldsCheckedListBox.Items.IndexOf(item3));
             }
         }
     }
     foreach (int num2 in list3)
     {
         this._fieldsCheckedListBox.SetItemChecked(num2, true);
     }
     if (flag)
     {
         this._fieldsCheckedListBox.SetItemChecked(0, true);
     }
     this._generateMode = flag2 ? 1 : 0;
     return true;
 }
Exemple #7
0
        public SqlDataSourceConfigureSortForm(SqlDataSourceDesigner sqlDataSourceDesigner, SqlDataSourceTableQuery tableQuery) : base(sqlDataSourceDesigner.Component.Site)
        {
            this._sqlDataSourceDesigner = sqlDataSourceDesigner;
            this._tableQuery            = tableQuery.Clone();
            this.InitializeComponent();
            this.InitializeUI();
            Cursor current = Cursor.Current;

            try
            {
                Cursor.Current       = Cursors.WaitCursor;
                this._loadingClauses = true;
                this._fieldComboBox1.Items.Add(new ColumnItem(null));
                this._fieldComboBox2.Items.Add(new ColumnItem(null));
                this._fieldComboBox3.Items.Add(new ColumnItem(null));
                foreach (DesignerDataColumn column in this._tableQuery.DesignerDataTable.Columns)
                {
                    this._fieldComboBox1.Items.Add(new ColumnItem(column));
                    this._fieldComboBox2.Items.Add(new ColumnItem(column));
                    this._fieldComboBox3.Items.Add(new ColumnItem(column));
                }
                this._fieldComboBox1.InvalidateDropDownWidth();
                this._fieldComboBox2.InvalidateDropDownWidth();
                this._fieldComboBox3.InvalidateDropDownWidth();
                this._sortByGroupBox2.Enabled           = false;
                this._sortByGroupBox3.Enabled           = false;
                this._sortDirectionPanel1.Enabled       = false;
                this._sortDirectionPanel2.Enabled       = false;
                this._sortDirectionPanel3.Enabled       = false;
                this._sortAscendingRadioButton1.Checked = true;
                this._sortAscendingRadioButton2.Checked = true;
                this._sortAscendingRadioButton3.Checked = true;
                if (this._tableQuery.OrderClauses.Count >= 1)
                {
                    SqlDataSourceOrderClause clause = this._tableQuery.OrderClauses[0];
                    this.SelectFieldItem(this._fieldComboBox1, clause.DesignerDataColumn);
                    this._sortAscendingRadioButton1.Checked  = !clause.IsDescending;
                    this._sortDescendingRadioButton1.Checked = clause.IsDescending;
                    if (this._tableQuery.OrderClauses.Count >= 2)
                    {
                        SqlDataSourceOrderClause clause2 = this._tableQuery.OrderClauses[1];
                        this.SelectFieldItem(this._fieldComboBox2, clause2.DesignerDataColumn);
                        this._sortAscendingRadioButton2.Checked  = !clause2.IsDescending;
                        this._sortDescendingRadioButton2.Checked = clause2.IsDescending;
                        if (this._tableQuery.OrderClauses.Count >= 3)
                        {
                            SqlDataSourceOrderClause clause3 = this._tableQuery.OrderClauses[2];
                            this.SelectFieldItem(this._fieldComboBox3, clause3.DesignerDataColumn);
                            this._sortAscendingRadioButton3.Checked  = !clause3.IsDescending;
                            this._sortDescendingRadioButton3.Checked = clause3.IsDescending;
                        }
                    }
                }
                this._loadingClauses = false;
                this.UpdateOrderClauses();
                this.UpdatePreview();
            }
            finally
            {
                Cursor.Current = current;
            }
        }
 public FilterClauseItem(IServiceProvider serviceProvider, SqlDataSourceTableQuery tableQuery, SqlDataSourceFilterClause filterClause, SqlDataSource sqlDataSource)
 {
     this._filterClause = filterClause;
     this._tableQuery = tableQuery;
     this._serviceProvider = serviceProvider;
     this._sqlDataSource = sqlDataSource;
 }
 public SqlDataSourceConfigureSortForm(SqlDataSourceDesigner sqlDataSourceDesigner, SqlDataSourceTableQuery tableQuery) : base(sqlDataSourceDesigner.Component.Site)
 {
     this._sqlDataSourceDesigner = sqlDataSourceDesigner;
     this._tableQuery = tableQuery.Clone();
     this.InitializeComponent();
     this.InitializeUI();
     Cursor current = Cursor.Current;
     try
     {
         Cursor.Current = Cursors.WaitCursor;
         this._loadingClauses = true;
         this._fieldComboBox1.Items.Add(new ColumnItem(null));
         this._fieldComboBox2.Items.Add(new ColumnItem(null));
         this._fieldComboBox3.Items.Add(new ColumnItem(null));
         foreach (DesignerDataColumn column in this._tableQuery.DesignerDataTable.Columns)
         {
             this._fieldComboBox1.Items.Add(new ColumnItem(column));
             this._fieldComboBox2.Items.Add(new ColumnItem(column));
             this._fieldComboBox3.Items.Add(new ColumnItem(column));
         }
         this._fieldComboBox1.InvalidateDropDownWidth();
         this._fieldComboBox2.InvalidateDropDownWidth();
         this._fieldComboBox3.InvalidateDropDownWidth();
         this._sortByGroupBox2.Enabled = false;
         this._sortByGroupBox3.Enabled = false;
         this._sortDirectionPanel1.Enabled = false;
         this._sortDirectionPanel2.Enabled = false;
         this._sortDirectionPanel3.Enabled = false;
         this._sortAscendingRadioButton1.Checked = true;
         this._sortAscendingRadioButton2.Checked = true;
         this._sortAscendingRadioButton3.Checked = true;
         if (this._tableQuery.OrderClauses.Count >= 1)
         {
             SqlDataSourceOrderClause clause = this._tableQuery.OrderClauses[0];
             this.SelectFieldItem(this._fieldComboBox1, clause.DesignerDataColumn);
             this._sortAscendingRadioButton1.Checked = !clause.IsDescending;
             this._sortDescendingRadioButton1.Checked = clause.IsDescending;
             if (this._tableQuery.OrderClauses.Count >= 2)
             {
                 SqlDataSourceOrderClause clause2 = this._tableQuery.OrderClauses[1];
                 this.SelectFieldItem(this._fieldComboBox2, clause2.DesignerDataColumn);
                 this._sortAscendingRadioButton2.Checked = !clause2.IsDescending;
                 this._sortDescendingRadioButton2.Checked = clause2.IsDescending;
                 if (this._tableQuery.OrderClauses.Count >= 3)
                 {
                     SqlDataSourceOrderClause clause3 = this._tableQuery.OrderClauses[2];
                     this.SelectFieldItem(this._fieldComboBox3, clause3.DesignerDataColumn);
                     this._sortAscendingRadioButton3.Checked = !clause3.IsDescending;
                     this._sortDescendingRadioButton3.Checked = clause3.IsDescending;
                 }
             }
         }
         this._loadingClauses = false;
         this.UpdateOrderClauses();
         this.UpdatePreview();
     }
     finally
     {
         Cursor.Current = current;
     }
 }