Hola chic@s soy algo nuevo en esto de programar en .net; por favor si alguien pudiese ayudarme se los agradesco mucho.
Mi problema es este, tengo un documento cargado de excel en un datagrid view, entonces el excel tiene una columna como esta:
color
azul
amarrillo
verde
azul
azul
verde
en la cual necesito contar cuantos registros en total de color azul tiene la columna y el resultado mandarlo a un label(es decir mandar el resultado 3 a un label)
pero algo pasa y no me los cuenta.
El codigo que uso para hacer eso es este:
public void contar(string archivo, string hoja)
{
//hoja es la hoja seleccionada del documento excel y archivo es la direccion de //este
string consultaHojaExcel = "Select count(color) from [" + hoja + "$] where color='azul'";
string cadenaConexionArchivoExcel = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + archivo + "';Extended Properties=Excel 8.0";
try
{
using (OleDbConnection connection = new OleDbConnection(cadenaConexionArchivoExcel))
{
OleDbCommand command = new OleDbCommand(consultaHojaExcel, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
if (reader.Read() == true)
{
label4.Text = Convert.ToString(reader["color"]);
}
reader.Close();
}
}
catch (Exception ex)
{
MessageBox.Show("Failed to connect to data source"+ex);
}
}
y me lanza este error failed to conect to data sourceSystem.IndexoutOfRangeException: color
espero a ver sido claro, y si pudiera ayudarme alguien estaria eternamente agradecido