using System.Data.SqlClient;
public class RetrieveResult<T>
public bool IsSuccessful { get; set; }
public T Value { get; set; }
public string name { get; set; }
public double price { get; set; }
public string size { get; set; }
public static void Main()
var retrieve = GetStockRecord( 1 );
if( retrieve.IsSuccessful )
var stockItem = retrieve.Value;
public static RetrieveResult<stockItem> GetStockRecord( int stockItemNumber )
var query = "SELECT name, size, price FROM dbo.products WHERE itemnumber = @itemNumber";
var result = new RetrieveResult<stockItem> { IsSuccessful = false };
using( var cn = new SqlConnection( "connectionString" ) )
using( var cmd = new SqlCommand( query, cn ) )
cmd.Parameters.Add( new SqlParameter("@itemNumber", SqlDbType.Int) { Value = stockItemNumber } );
using( var read = cmd.ExecuteReader() )
using( var da = new SqlDataAdapter() )
var dt = new DataTable();
var stockItem = new stockItem
name = row[ "name" ] as string,
price = double.Parse( row["price"] as string ),
size = row[ "size" ] as string
result.Value = stockItem;
result.IsSuccessful = true;