Hola,
Estoy intentando comparar la información de un .xls con la información que tengo en una Base de datos. Para colmo de dificultad, estoy trabajando por capas, pero creo que voy a obviarlo por ahora...
La idea es que me compare la información de ambas tablas y me muestre en dos GridViews la información completa de cada fila que no se encuentre en la otra tabla, es decir, algo tipo:
Código:
"SELECT * From TableXls AS xls LEFT JOIN TableSql AS sql ON [xls.DNI=sql.NIF] WHERE sql.NIF IS NULL"
El problema es que no se como hacer para trabajar a la vez con las dos conexiones, mi código hasta ahora es:
Código:
private void Import_To_Grid(string FilePath, string Extension)
{
string conStr = "";
switch (Extension)
{
case ".xls": //Excel 97-03
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
break;
case ".xlsx": //Excel 07
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'";
break;
}
conStr = String.Format(conStr, FilePath, "Yes");
OleDbConnection connExcel = new OleDbConnection(conStr);
OleDbCommand cmdExcel = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
DataTable dt = new DataTable();
cmdExcel.Connection = connExcel;
//Aquí iria el código de la conexión a sql server...
//Get the name of First Sheet
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
connExcel.Close();
//Read Data from First Sheet
connExcel.Open();
//Este sería el sql a modificar
cmdExcel.CommandText = "SELECT * From [" + SheetName + "] WHERE [MES FORMACIÓN] = '" + InsFecha.Text + "'";
oda.SelectCommand = cmdExcel;
oda.Fill(dt);
connExcel.Close();
//Bind Data to GridView
GridView1.Caption = "<h1>Datos de otros meses:</h1>";
GridView1.DataSource = dt;
GridView1.DataBind();
}
¿Alguna idea o guía de por donde empezar?
Muchas Gracias