protected bool GrabarDatos()
{
bool bValido = true;
sError = "Archivo inválido";
//Si se carga un archivo en el control fileUpload
if (this.updArchivo.HasFile)
{
if(this.updArchivo.PostedFile.ContentLength > 0 && this.updArchivo.FileName.EndsWith(".xls"))
{
sError = string.Empty;
DataSet DataSet = new DataSet();
try
{
//se obtiene la ruta y se guarda el archivo cargado
string sNombreArchivoTemp = System.IO.Path.GetTempFileName();
string sNombreArchivo = string.Empty;
sNombreArchivo = System.IO.Path.GetFileName(this.updArchivo.PostedFile.FileName);
this.updArchivo.PostedFile.SaveAs(sNombreArchivoTemp);
OleDbConnection Connexion = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sNombreArchivoTemp + ";Extended Properties=Excel 8.0");
OleDbDataAdapter DataAdapt = new OleDbDataAdapter("SELECT * FROM [Estructura$]", Connexion);
DataAdapt.Fill(DataSet);
}
catch
{
sError = "Archivo Inválido";
return false;
}
string[] Colum = { "Accion", "Horas Ejecutadas" };
int i = 0;
if (DataSet.Tables.Count > 0)
{
//verificamos que el archivo contenga la cantidad de columnas
if (DataSet.Tables[0].Columns.Count != Colum.Length)
{
bValido = false;
sError = "Archivo de carga incorrecto. Verificar número de columnas";
}
else
{
bValido = true;
}
//Se verifica la estructura del archivo
foreach(DataColumn Col in DataSet.Tables[0].Columns)
{
if (bValido)
{
if (Col.Caption.ToUpper().Trim() != Colum[i].ToUpper())
{
bValido = false;
sError = "Archivo de carga es incorrecto";
break;
}
}
else
{
break;
}
i++;
}
//Se verifica que existan datos para ser cargados
if (DataSet.Tables[0].Rows.Count == 0)
{
sError = "Archivo no posee datos para carga";
bValido = false;
}
//Se verifican los datos del archivo
if (bValido)
{
BOL.BOL_ACC_CAP oBOLAcc;
BOL.CONTROL_ERROR oControlError;
foreach (DataRow DataRow in DataSet.Tables[0].Rows)
{
oBOLAcc = new BOL.BOL_ACC_CAP();
oControlError = new BOL.CONTROL_ERROR();
BLL.BLL_ACC_CAP oBLLAcc = new BLL.BLL_ACC_CAP();
//Se cargan las filas del excel
try
{
oBOLAcc = CargarOjeto(DataRow);
if (oBOLAcc.ESTADO2 > 0)
{
oControlError = oBLLAcc.UPDATE_ACC_CAP(oBOLAcc);
}
else
{
oControlError.EstCod = -1;
}
if (oControlError.EstCod < 0)
{
if (sError.Length == 0)
{
sError = "Error en: " + oBOLAcc.ID_ACC_CAP;
}
else
{
sError = sError + "</br>" + "Error en: " + oBOLAcc.ID_ACC_CAP;
}
}
}
catch
{
if (sError.Length == 0)
{
sError = "Error al grabar objeto: " + oBOLAcc.ID_ACC_CAP;
}
else
{
sError = sError + "</br>" + "Error al grabar objeto: " + oBOLAcc.ID_ACC_CAP;
}
}
}
//Se lee cada elemento del archivo y se graba
if (sError.Length > 0)
{
return false;
}
else
{
return true;
}
}
}
}
}
return false;
}