public void CommandWhenAdd_N_Params_IncreasesSizeByN() { using(SqlCommand command = new SqlCommand()){ command.AddParams( new Param("Name1", "Value1"), new Param("Name2", "Value2"), new Param("Name3", "Value3") ); Assert.AreEqual(3, command.Parameters.Count); } }
public void CommandWhenAdd_N_Params_HasMatchingValues() { using(SqlCommand command = new SqlCommand()){ command.AddParams( new Param("Name1", "Value1"), new Param("Name2", "Value2"), new Param("Name3", "Value3") ); Assert.AreEqual("Value2", command.Parameters[1].Value); } }
/// <summary> /// Executes the reader using SQL async API - thanks to Damian Edwards /// </summary> public void QueryAsync(string sql, Action<List<dynamic>> callback, params object[] args) { using (var conn = new SqlConnection(ConnectionProfile.ConnectionString)) { var cmd = new SqlCommand(sql, new SqlConnection(ConnectionProfile.ConnectionString)); cmd.AddParams(args); cmd.Connection.Open(); var task = Task.Factory.FromAsync<IDataReader>(cmd.BeginExecuteReader, cmd.EndExecuteReader, null); task.ContinueWith(x => callback.Invoke(x.Result.ToGeminiList(Projection))); //make sure this is closed off. conn.Close(); } }
/// <summary> /// Executes the reader using SQL async API - thanks to Damian Edwards /// </summary> public void QueryAsync(string sql, Action<List<dynamic>> callback, params object[] args) { using (var conn = new SqlConnection(_connectionString)) { var cmd = new SqlCommand(sql, conn); cmd.AddParams(args); conn.Open(); var task = Task.Factory.FromAsync<IDataReader>(cmd.BeginExecuteReader, cmd.EndExecuteReader, null); task.ContinueWith(x => callback.Invoke(x.Result.ToExpandoList())); } }
/// <summary> /// Executes the reader using SQL async API - thanks to Damian Edwards /// </summary> public void QueryAsync(string sql, Action<List<dynamic>> callback, params object[] args) { var conn = new SqlConnection(ConnectionString); using(var cmd = new SqlCommand(sql, conn)){ cmd.AddParams(args); try{ conn.Open(); var task = Task.Factory.FromAsync<IDataReader>(cmd.BeginExecuteReader, cmd.EndExecuteReader, null); task.ContinueWith(x => { var result = x.Result.ToExpandoList(); conn.Dispose(); callback.Invoke(result); }); } catch (DbException){ if (conn.State == ConnectionState.Open) conn.Close(); throw; } } }