Entiendo por clase a la agrupación de objetos con características similares, entonces puedo expresar a la clase Clientes de esta manera:
//Aca tenemos una Clase
public class cCustomers
{
private string _xCustomerID;
private string _xCompanyName;
//Este es un Constructor
public cCustomers()
{
}
//Este es otro Constructor
public cCustomers(string vCustId, string vCiaName)
{
CustomerID = vCustId;
CompanyName = vCiaName;
}
//Este es una propiedad o atributo
public string CustomerID
{
get { return _xCustomerID; }
set { _xCustomerID = value; }
}
//Este es otra propiedad o atributo
public string CompanyName
{
get { return _xCompanyName; }
set { _xCompanyName = value; }
}
}
Una Clase tiene Métodos, en este caso he creado una Clase llamada mCustomers en donde podremos poner todos los métodos que se utilizaran en la Clase Clientes, por lo pronto he creado el método ListarClientes al que pasamos un parámetro de tipo string y retorna una lista List<cCustomers>.
public List<cCustomers> ListarClientes(string vQuery)
{
string Con = “data source=.\\SqlExpress;Initial Catalog =NorthWind; integrated security=true”;
SqlConnection Cn = new SqlConnection(Con);
SqlDataReader Dr = null;
SqlCommand Cmd = new SqlCommand(vQuery, Cn);
Cn.Open(); //Abrimos la conexion
Dr = Cmd.ExecuteReader(); //Lenamos el DataReader
//Creamos la Lista del mismo tipo de nuestra clase clientes
List<cCustomers> lista = new List<cCustomers>();
int colCustomerID = Dr.GetOrdinal(“CustomerID”);
int colCompanyName = Dr.GetOrdinal(“CompanyName”);
int colCount = Dr.FieldCount;
object[] values = new object[colCount];
while (Dr.Read())
{
Dr.GetValues(values);
cCustomers cust = new cCustomers(Convert.ToString(values[colCustomerID]),
Convert.ToString(values[colCompanyName]));
lista.Add(cust); //Añadimos a las lista un cliente, según corra el bucle
}
return lista; //Devolvemos la Lista llena
}