Skip to content

Instantly share code, notes, and snippets.

@jonnii
Last active December 11, 2015 06:08
Show Gist options
  • Save jonnii/4557038 to your computer and use it in GitHub Desktop.
Save jonnii/4557038 to your computer and use it in GitHub Desktop.
var dataSource = new SqlServerDataSource
{
ConnectionString = "server=server;database=database;User Id=id; Password=password;"
};
var procedure = new StoredProcedure("SomeAwesomeProcedure");
procedure.AddInput("Input1", "bar");
procedure.AddInput("Input2", "baz");
dataSource.Execute(procedure, t =>
{
Console.WriteLine(t.GetInt32(0));
Console.WriteLine(t.GetString(1));
});
using System;
using System.Data;
namespace DataAccess
{
/// <summary>
/// A datasource can execute stored procedures
/// </summary>
public interface IDataSource
{
/// <summary>
/// Executes a stored procedure
/// </summary>
/// <param name="storedProcedure">The stored procedure to execute</param>
/// <param name="resultsAction">An action for processing the stored procedure results</param>
void Execute(IStoredProcedure storedProcedure, Action<IStoredProcedureResult> resultsAction);
/// <summary>
/// Executes a stored proceudre
/// </summary>
/// <param name="storedProcedure">The stored procedure to execute</param>
/// <param name="readerAction">A data reader for processing the results of the procedure</param>
void Execute(IStoredProcedure storedProcedure, Action<IDataReader> readerAction);
/// <summary>
/// Executes a stored procedure and
/// </summary>
/// <param name="storedProcedure"></param>
/// <param name="dataSetAction"></param>
void Execute(IStoredProcedure storedProcedure, Action<DataSet> dataSetAction);
/// <summary>
/// Executes a stored procedure
/// </summary>
/// <param name="storedProcedure">The stored procedure to execute</param>
void Execute(IStoredProcedure storedProcedure);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment