public override object ExecuteScalar() { LINQPadDbController.DbCommandExecuting(this); Stopwatch stopwatch = Stopwatch.StartNew(); object obj2 = this._proxy.ExecuteScalar(); stopwatch.Stop(); LINQPadDbController.DbCommandFinished(stopwatch.Elapsed); return(obj2); }
protected override DbDataReader ExecuteDbDataReader(CommandBehavior behavior) { LINQPadDbController.DbCommandExecuting(this); Stopwatch stopwatch = Stopwatch.StartNew(); DbDataReader reader = this._proxy.ExecuteReader(behavior); stopwatch.Stop(); LINQPadDbController.DbCommandFinished(stopwatch.Elapsed); return(reader); }
public override int ExecuteNonQuery() { LINQPadDbController.DbCommandExecuting(this); Stopwatch stopwatch = Stopwatch.StartNew(); int num = this._proxy.ExecuteNonQuery(); stopwatch.Stop(); LINQPadDbController.DbCommandFinished(stopwatch.Elapsed); return(num); }
public ReturnDataSet ExecuteStoredProcedure(string name, params object[] args) { bool flag; ReturnDataSet set; DbCommand command = this.Connection.CreateCommand(); command.CommandText = name; command.CommandType = CommandType.StoredProcedure; command.CommandTimeout = 0; if (!(flag = this.Connection.State == ConnectionState.Open)) { this.Connection.Open(); } try { SqlCommand proxy = command as SqlCommand; if ((proxy == null) && (command is LINQPadDbCommand)) { proxy = ((LINQPadDbCommand)command).Proxy as SqlCommand; } if (proxy == null) { return(new ReturnDataSet()); } SqlCommandBuilder.DeriveParameters(proxy); int num = 1; List <DbParameter> list = new List <DbParameter>(); foreach (object obj2 in args) { if (num == command.Parameters.Count) { break; } object obj3 = obj2; IOptional optional = obj3 as IOptional; if (optional != null) { if (!optional.HasValue) { num++; continue; } obj3 = optional.Value; } if (obj3 is XNode) { obj3 = obj3.ToString(); } else if (obj3 is Binary) { obj3 = ((Binary)obj3).ToArray(); } command.Parameters[num].Value = (obj3 == null) ? DBNull.Value : obj3; num++; } foreach (DbParameter parameter in list) { proxy.Parameters.Remove(parameter); } LINQPadDbController.DbCommandExecuting(proxy); SqlDataAdapter adapter = new SqlDataAdapter(proxy); ReturnDataSet dataSet = new ReturnDataSet(); Stopwatch stopwatch = Stopwatch.StartNew(); adapter.Fill(dataSet); stopwatch.Stop(); if (proxy.Parameters[0].Value is int) { dataSet.ReturnValue = (int)proxy.Parameters[0].Value; } Dictionary <string, object> source = new Dictionary <string, object>(); foreach (SqlParameter parameter2 in proxy.Parameters) { if ((parameter2.Direction == ParameterDirection.InputOutput) || (parameter2.Direction == ParameterDirection.Output)) { source[parameter2.ParameterName] = parameter2.Value; } } if (source.Any <KeyValuePair <string, object> >()) { dataSet.OutputParameters = source; } int num3 = 0; foreach (DataTable table in dataSet.Tables) { table.TableName = "Result Set " + num3++; } LINQPadDbController.DbCommandFinished(stopwatch.Elapsed); set = dataSet; } finally { if (!flag) { this.Connection.Close(); } } return(set); }