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; }
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; }