none
subir un archivo Excel a Sql Server con en c# Asp.net RRS feed

  • Pregunta

  • saludos

    tengo un inconveniente estoy tratando de validar un campo que esta en el archivo Excel esta en la 2 columna y que ese lo busque en la tabla pruebaEquipo y saque el IdEquipo y con este Id lo inserte en la tabla PruebaTransaccion, no hace la consulta quisiera me ayudaran que estoy haciendo mal a continuación el código 

     //Ruta del Servidor donde se va guardar el archivo Excel
                string filepath = "C:\\Users\\Documents\\";
                string filename = string.Empty;

                //Validamos si trae algun archivo nuestro FileUpload
                if (FileUpload1.HasFile)
                {
                    try
                    {
                        //Tipos de rutas para el archivo
                        string[] traerruta = { ".xls", ".xlsx" };

                        //Traemos la extension del archivo Excel
                        string FileExt = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);

                        //Vamos a validar la ruta en un booleano
                        bool validaruta = traerruta.Contains(FileExt);


                        if (!validaruta)
                        {
                            //Mensaje de que el archivo que selecciono no es Excel
                            string mensaje1 = @"<script type='text/javascript'>alert('Por Favor seleccione un archivo Excel');</script>";

                            ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", mensaje1, false);
                        }
                        else
                        {
                            //Traer tamaño del archivo
                            int Filesize = FileUpload1.PostedFile.ContentLength;

                            //Validar el tamaño del archivo
                            if (Filesize < 4048576)
                            {
                                //Traemos el nombre del archivo
                                filename = Path.GetFileName(FileUpload1.FileName);



                                //Guardamos el archivo en la ruta 
                                FileUpload1.SaveAs(filepath + filename);

                                //Concatenamos la ruta del archivo con el nombre del archivo para buscarlo y poder leerlo
                                string filepath2 = filepath + filename;

                                //Instanciamos la conexión OleDb para el Excel
                                OleDbConnection con = null;


                                con = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.12.0; " + "Extended Properties='Excel 12.0 Xml;HDR=NO';" + "Data Source=" + filepath2);



                                //Abrimos la conexion dependiendo la extensión
                                con.Open();

                                //Le agregamos al DataTable el archivo con la conexion abierta
                                DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                                //Traemos el nombre de la Hoja que se consultara
                                string getExcel = dt.Rows[0]["Table_name"].ToString();

                                //Seleccionamos la Hoja A Consultar
                                OleDbCommand ExcelCommand = new OleDbCommand(@"SELECT * FROM [" + getExcel + @"]", con);
                                OleDbDataAdapter exceladapter = new OleDbDataAdapter(ExcelCommand);
                                DataSet ExcelDataSet = new DataSet();
                                exceladapter.Fill(ExcelDataSet);
                                DataTable TablaSeriales = new DataTable();
                                exceladapter.Fill(TablaSeriales);
                                con.Close();
                                OleDbDataReader dr = ExcelCommand.ExecuteReader();
                                //Metemos todo el excel en el GridView Para luego recorrerlo y guardar la información
                                GridView1.DataSource = ExcelDataSet;
                                GridView1.DataBind();
                                GridView1.Visible = false;

                                //Abrimos la conexion
                                SqlConnection conn8 = new SqlConnection("Data Source=10.80.3.140\\10.80.3.140,52100;Initial Catalog=InventarioEquipos;Persist Security Info=True;User ID=UsuInventarioAplicacion;Password=Telefonica2017*");
                                conn8.Open();
                                SqlCommand cmd8 = new SqlCommand();
                                SqlDataReader reader8;
                                foreach (DataRow dr1 in TablaSeriales.Rows)
                                {
                                    string serie = Convert.ToString(dr1[1].ToString());

                                   
                                    cmd8.CommandText = "select IdEquipo from PruebaEquipo where SerialEquipo = " + serie + "";
                                    cmd8.CommandType = CommandType.Text;
                                    cmd8.Connection = conn8;
                                    SqlDataReader reader = cmd8.ExecuteReader();
                                    cmd8 = null;
                                    if (reader.Read())
                                    {
                                        int IdEquipo = Convert.ToInt32(reader[0].ToString());
           
                                        string SerialEquipo = Convert.ToString(reader[1].ToString());      
                                        string queryInsert = "insert into pruebaTransa (IdTipoTransaccion,IdEquipo, SerialEquipo, IdUbicacion) values (50,@idequipo,null,null);";
                                        cmd8 = new SqlCommand(queryInsert, conn8);
                                        SqlParameter parameter = new SqlParameter("@idequipo", SqlDbType.Int);

                                        parameter.Value = IdEquipo;
                                       
                                        cmd8.Parameters.Add(parameter);
                                        cmd8.CommandType = CommandType.Text;
                                        cmd8.Connection = conn8;
                                        cmd8.ExecuteNonQuery();
                                        cmd8.Dispose();
                                    }

                                    reader.Close();
                                }
                                con.Close();
                                string mensaje1 = @"<script type='text/javascript'>alert('exito');</script>";

                                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", mensaje1, false);
                            }

    jueves, 20 de septiembre de 2018 20:58