private SqlDataSourceQuery GetWhereClause(string oldValuesFormatString, bool includeOldValues) { List <SqlDataSourceColumnData> effectiveColumns = this.GetEffectiveColumns(); List <Parameter> parameters = new List <Parameter>(); if (effectiveColumns.Count == 0) { return(null); } StringBuilder commandText = new StringBuilder(); commandText.Append(" WHERE "); int num = 0; DbProviderFactory dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(this.DesignerDataConnection.ProviderName); foreach (SqlDataSourceColumnData data in effectiveColumns) { if (data.Column.PrimaryKey) { if (num > 0) { commandText.Append(" AND "); } num++; this.AppendWhereClauseParameter(commandText, data, oldValuesFormatString); parameters.Add(SqlDataSourceDesigner.CreateParameter(dbProviderFactory, data.GetOldValueWebParameterName(oldValuesFormatString), data.Column.DataType)); } } if (num == 0) { return(null); } if (includeOldValues) { foreach (SqlDataSourceColumnData data2 in effectiveColumns) { if (!data2.Column.PrimaryKey) { commandText.Append(" AND "); num++; this.AppendWhereClauseParameter(commandText, data2, oldValuesFormatString); Parameter item = SqlDataSourceDesigner.CreateParameter(dbProviderFactory, data2.GetOldValueWebParameterName(oldValuesFormatString), data2.Column.DataType); parameters.Add(item); if (data2.Column.Nullable && !SqlDataSourceDesigner.SupportsNamedParameters(dbProviderFactory)) { parameters.Add(item); } } } } return(new SqlDataSourceQuery(commandText.ToString(), SqlDataSourceCommandType.Text, parameters)); }
private string CreateParameterPlaceholder(string oldValueFormatString) { DbProviderFactory dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(this._connection.ProviderName); string parameterPlaceholderPrefix = SqlDataSourceDesigner.GetParameterPlaceholderPrefix(dbProviderFactory); if (!SqlDataSourceDesigner.SupportsNamedParameters(dbProviderFactory)) { return(parameterPlaceholderPrefix); } if (oldValueFormatString == null) { return(parameterPlaceholderPrefix + this.AliasedName); } return(parameterPlaceholderPrefix + string.Format(CultureInfo.InvariantCulture, oldValueFormatString, new object[] { this.AliasedName })); }
protected bool CheckValidProvider() { DesignerDataConnection dataConnection = this.DataConnection; try { SqlDataSourceDesigner.GetDbProviderFactory(dataConnection.ProviderName); return(true); } catch (Exception exception) { UIServiceHelper.ShowError(base.ServiceProvider, exception, System.Design.SR.GetString("SqlDataSourceConnectionPanel_ProviderNotFound", new object[] { dataConnection.ProviderName })); return(false); } }
public SqlDataSourceQuery GetUpdateQuery(string oldValuesFormatString, bool includeOldValues) { if (!this.CanAutoGenerateQueries()) { return(null); } StringBuilder builder = new StringBuilder("UPDATE "); builder.Append(this.GetTableName()); builder.Append(" SET "); List <SqlDataSourceColumnData> effectiveColumns = this.GetEffectiveColumns(); List <Parameter> parameters = new List <Parameter>(); bool flag = true; foreach (SqlDataSourceColumnData data in effectiveColumns) { if (!data.Column.PrimaryKey) { if (!flag) { builder.Append(", "); } builder.Append(data.EscapedName); builder.Append(" = "); builder.Append(data.ParameterPlaceholder); flag = false; DbProviderFactory dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(this.DesignerDataConnection.ProviderName); parameters.Add(SqlDataSourceDesigner.CreateParameter(dbProviderFactory, data.WebParameterName, data.Column.DataType)); } } if (flag) { return(null); } SqlDataSourceQuery whereClause = this.GetWhereClause(oldValuesFormatString, includeOldValues); if (whereClause == null) { return(null); } builder.Append(whereClause.Command); foreach (Parameter parameter in whereClause.Parameters) { parameters.Add(parameter); } return(new SqlDataSourceQuery(builder.ToString(), SqlDataSourceCommandType.Text, parameters)); }
public static string GetConnectionName(DesignerDataConnection connection) { DbConnectionStringBuilder connectionStringBuilder = SqlDataSourceDesigner.GetDbProviderFactory(connection.ProviderName).CreateConnectionStringBuilder(); if (connectionStringBuilder == null) { connectionStringBuilder = new DbConnectionStringBuilder(); } string str = null; try { object obj2; connectionStringBuilder.ConnectionString = connection.ConnectionString; if (IsLocalDbFileConnectionString(connection.ProviderName, connectionStringBuilder)) { string filePathKey = GetFilePathKey(connection.ProviderName, connectionStringBuilder); if (!string.IsNullOrEmpty(filePathKey)) { string str3 = connectionStringBuilder[filePathKey] as string; if (!string.IsNullOrEmpty(str3)) { str = Path.GetFileNameWithoutExtension(str3) + "ConnectionString"; } } } if ((str == null) && connectionStringBuilder.TryGetValue("Database", out obj2)) { string s = obj2 as string; if (!StringIsEmpty(s)) { str = s + "ConnectionString"; } } } catch { } if (str == null) { str = "ConnectionString"; } return(str.Trim()); }
public SqlDataSourceQuery GetInsertQuery() { if (!this.CanAutoGenerateQueries()) { return(null); } List <Parameter> parameters = new List <Parameter>(); StringBuilder builder = new StringBuilder("INSERT INTO "); builder.Append(this.GetTableName()); List <SqlDataSourceColumnData> effectiveColumns = this.GetEffectiveColumns(); StringBuilder builder2 = new StringBuilder(); StringBuilder builder3 = new StringBuilder(); bool flag = true; foreach (SqlDataSourceColumnData data in effectiveColumns) { if (!data.Column.Identity) { if (!flag) { builder2.Append(", "); builder3.Append(", "); } builder2.Append(data.EscapedName); builder3.Append(data.ParameterPlaceholder); DbProviderFactory dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(this.DesignerDataConnection.ProviderName); parameters.Add(SqlDataSourceDesigner.CreateParameter(dbProviderFactory, data.WebParameterName, data.Column.DataType)); flag = false; } } if (flag) { return(null); } builder.Append(" ("); builder.Append(builder2.ToString()); builder.Append(") VALUES ("); builder.Append(builder3.ToString()); builder.Append(")"); return(new SqlDataSourceQuery(builder.ToString(), SqlDataSourceCommandType.Text, parameters)); }
internal static string EscapeObjectName(DesignerDataConnection connection, string objectName) { string str = "["; string str2 = "]"; try { DbProviderFactory dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(connection.ProviderName); DbCommandBuilder builder = dbProviderFactory.CreateCommandBuilder(); if (dbProviderFactory == OracleClientFactory.Instance) { str = str2 = "\""; } builder.QuotePrefix = str; builder.QuoteSuffix = str2; return(builder.QuoteIdentifier(objectName)); } catch (Exception) { return(str + objectName + str2); } }
private void OnTestQueryButtonClick(object sender, EventArgs e) { ParameterCollection parameters = new ParameterCollection(); foreach (Parameter parameter in this._selectQuery.Parameters) { if (parameter.DbType == DbType.Object) { parameters.Add(new Parameter(parameter.Name, parameter.Type, parameter.DefaultValue)); } else { parameters.Add(new Parameter(parameter.Name, parameter.DbType, parameter.DefaultValue)); } } if (parameters.Count > 0) { SqlDataSourceParameterValueEditorForm form = new SqlDataSourceParameterValueEditorForm(base.ServiceProvider, parameters); if (UIServiceHelper.ShowDialog(base.ServiceProvider, form) == DialogResult.Cancel) { return; } } this._resultsGridView.DataSource = null; DbCommand command = null; Cursor current = Cursor.Current; try { Cursor.Current = Cursors.WaitCursor; DbProviderFactory dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(this._dataConnection.ProviderName); DbConnection designTimeConnection = null; try { designTimeConnection = SqlDataSourceDesigner.GetDesignTimeConnection(base.ServiceProvider, this._dataConnection); } catch (Exception exception) { if (designTimeConnection == null) { UIServiceHelper.ShowError(base.ServiceProvider, exception, System.Design.SR.GetString("SqlDataSourceSummaryPanel_CouldNotCreateConnection")); return; } } if (designTimeConnection == null) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("SqlDataSourceSummaryPanel_CouldNotCreateConnection")); } else { command = this._sqlDataSourceDesigner.BuildSelectCommand(dbProviderFactory, designTimeConnection, this._selectQuery.Command, parameters, this._selectQuery.CommandType); DbDataAdapter adapter = SqlDataSourceDesigner.CreateDataAdapter(dbProviderFactory, command); adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey; DataSet dataSet = new DataSet(); adapter.Fill(dataSet); if (dataSet.Tables.Count == 0) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("SqlDataSourceSummaryPanel_CannotExecuteQueryNoTables")); } else { this._resultsGridView.DataSource = dataSet.Tables[0]; foreach (DataGridViewColumn column in this._resultsGridView.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } this._resultsGridView.AutoResizeColumnHeadersHeight(); this._resultsGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } } } catch (Exception exception2) { UIServiceHelper.ShowError(base.ServiceProvider, exception2, System.Design.SR.GetString("SqlDataSourceSummaryPanel_CannotExecuteQuery")); } finally { if ((command != null) && (command.Connection.State == ConnectionState.Open)) { command.Connection.Close(); } Cursor.Current = current; } }
private void OnInferParametersButtonClick(object sender, EventArgs e) { if (this._commandTextBox.Text.Trim().Length == 0) { UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("SqlDataSourceQueryEditorForm_InferNeedsCommand")); } else { Parameter[] parameterArray = this._sqlDataSourceDesigner.InferParameterNames(this._dataConnection, this._commandTextBox.Text, this._commandType); if (parameterArray != null) { Parameter[] parameters = this._parameterEditorUserControl.GetParameters(); StringCollection strings = new StringCollection(); foreach (Parameter parameter in parameters) { strings.Add(parameter.Name); } bool flag = true; try { flag = SqlDataSourceDesigner.SupportsNamedParameters(SqlDataSourceDesigner.GetDbProviderFactory(this._dataConnection.ProviderName)); } catch { } if (flag) { List <Parameter> list = new List <Parameter>(); foreach (Parameter parameter2 in parameterArray) { if (!strings.Contains(parameter2.Name)) { list.Add(parameter2); } else { strings.Remove(parameter2.Name); } } this._parameterEditorUserControl.AddParameters(list.ToArray()); } else { List <Parameter> list2 = new List <Parameter>(); foreach (Parameter parameter3 in parameterArray) { list2.Add(parameter3); } foreach (Parameter parameter4 in parameters) { Parameter item = null; foreach (Parameter parameter6 in list2) { if (parameter6.Direction == parameter4.Direction) { item = parameter6; break; } } if (item != null) { list2.Remove(item); } } this._parameterEditorUserControl.AddParameters(list2.ToArray()); } } } }
public SqlDataSourceQuery GetQuery() { SqlDataSourceQuery query; Cursor current = Cursor.Current; try { DbProviderFactory dbProviderFactory; Cursor.Current = Cursors.WaitCursor; if (this._sqlRadioButton.Checked) { SqlDataSourceCommandType text; ICollection is2; if (this._commandTextBox.Text.Trim().Length <= 0) { return(new SqlDataSourceQuery(string.Empty, SqlDataSourceCommandType.Text, new Parameter[0])); } if (string.Equals(this._commandTextBox.Text, this._originalCommand, StringComparison.OrdinalIgnoreCase)) { text = this._commandType; } else { text = SqlDataSourceCommandType.Text; } dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(this._dataConnection.ProviderName); if ((this._editorMode == QueryBuilderMode.Select) || SqlDataSourceDesigner.SupportsNamedParameters(dbProviderFactory)) { Parameter[] c = this._sqlDataSourceDesigner.InferParameterNames(this._dataConnection, this._commandTextBox.Text, text); if (c == null) { return(null); } ArrayList list = new ArrayList(c); is2 = this.MergeParameters(this._parameters, list, SqlDataSourceDesigner.SupportsNamedParameters(dbProviderFactory)); } else { is2 = this._parameters; } return(new SqlDataSourceQuery(this._commandTextBox.Text, text, is2)); } StoredProcedureItem selectedItem = this._storedProcedureComboBox.SelectedItem as StoredProcedureItem; if (selectedItem == null) { return(new SqlDataSourceQuery(string.Empty, SqlDataSourceCommandType.Text, new Parameter[0])); } ArrayList newParameters = new ArrayList(); ICollection is3 = null; try { is3 = selectedItem.DesignerDataStoredProcedure.Parameters; } catch (Exception exception) { UIServiceHelper.ShowError(this._sqlDataSourceDesigner.Component.Site, exception, System.Design.SR.GetString("SqlDataSourceCustomCommandEditor_CouldNotGetStoredProcedureSchema")); return(null); } dbProviderFactory = SqlDataSourceDesigner.GetDbProviderFactory(this._dataConnection.ProviderName); if ((is3 != null) && (is3.Count > 0)) { foreach (DesignerDataParameter parameter in is3) { string name = SqlDataSourceDesigner.StripParameterPrefix(parameter.Name); Parameter parameter2 = SqlDataSourceDesigner.CreateParameter(dbProviderFactory, name, parameter.DataType); parameter2.Direction = parameter.Direction; newParameters.Add(parameter2); } } ICollection parameters = this.MergeParameters(this._parameters, newParameters, SqlDataSourceDesigner.SupportsNamedParameters(dbProviderFactory)); query = new SqlDataSourceQuery(selectedItem.DesignerDataStoredProcedure.Name, SqlDataSourceCommandType.StoredProcedure, parameters); } finally { Cursor.Current = current; } return(query); }