none
Error en capa de datos. RRS feed

  • Pregunta

  • Amigos buenos días.

    Primero que nada espero se encuentren todos bien, el motivo de ésta consulta es debido a que estoy probando un formulario en web forms con las clásicas operaciones de actualizar, insertar y borrar.

    El problema es que al ejecutarlo me manda el siguiente error en la capa de datos:

    Error relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server. No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas. (provider: SQL Network Interfaces, error: 26 - Error al buscar el servidor o instancia especificado)

    Y les muestro el fragmento de código en la capa de datos donde aparece el error:

     public bool AgregarCliente(int id, string nombre, string departamento, string sueldo)
        {
          
            SqlConnection conexion = new SqlConnection();
            conexion.ConnectionString = strConnString;
            conexion.Open(); --------- * aqui manda ese mensaje *

            SqlCommand comando = new SqlCommand();
            comando.CommandType = CommandType.StoredProcedure;
            comando.CommandText = "insertar";
            comando.Connection = conexion;

            SqlParameter parametroId = new SqlParameter("id", SqlDbType.Int, 0);
            parametroId.Value = id;
            comando.Parameters.Add(id);

            SqlParameter parametroNombre = new SqlParameter("nombre", SqlDbType.VarChar, 80);
            parametroNombre.Value = nombre;
            comando.Parameters.Add(nombre);

            SqlParameter parametroDepartamento = new SqlParameter("departamento", SqlDbType.VarChar, 40);
            parametroDepartamento.Value = id;
            comando.Parameters.Add(departamento);

            SqlParameter parametroSueldo = new SqlParameter("sueldo", SqlDbType.VarChar, 40);
            parametroSueldo.Value = sueldo;
            comando.Parameters.Add(sueldo);

            int resultado = comando.ExecuteNonQuery();

            return true;
        }

    Quisiera saber cómo solucionarlo ya que he trabajado con éste código otras veces y no me había marcado éste error.

    De antemano muchas gracias a todos y saludos cordiales.

    viernes, 13 de mayo de 2016 15:25

Todas las respuestas

  • Hola ARMANDO DAZA,

    La descripción es clara respecto a lo que sucede:

    "...No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas."

    ¿Te has asegurado en no infringir lo que el mensaje indica? ¿La variable strConnString esta devolviendo una cadena de conexión valida? ¿Te has asegurado que los valores que asignas a los atributos de la cadena de conexión sean los correctos? Ello implica que el servidor exista, que coloques la instancia en caso lo tenga,  que las credenciales de autenticación sean las correctas y que SQL Server está configurado para admitir conexiones remotas

    • Propuesto como respuesta Sergio Parra sábado, 14 de mayo de 2016 14:30
    viernes, 13 de mayo de 2016 15:31
  • Hola William Morales.

    Muchas gracias por tu respuesta, voy a verificar todos esos puntos para tratar de solucionar el problema, por cualquier cosa estaré aquí molestando de nuevo.

    Saludos !

    viernes, 13 de mayo de 2016 15:51
  • Hola

    También fijate si tu SQL esta iniciado, podrías también cambiar la manera de hacer tu conexión a la DB

    En tu caso usarias el archivo Web.config

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <connectionStrings>
        <add name="default" connectionString="Data Source=.;Initial Catalog=DBPrisma;User ID=sa;Password=xxx"/>
      </connectionStrings>
     
    </configuration>

    En tu capa de Acceso a Datos, tienes que agregar la referencia Configuration

    using System;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;
    
    
    namespace GlobalTech.DataAcces
    {
        internal class Conexion
        {
            public static SqlConnection Conectar(string cnStr)
            {
                try
                {
                    string conn = ConfigurationManager.ConnectionStrings["default"].ToString();
                    SqlConnection cn = new SqlConnection(conn);
                    cn.Open();
                    return cn;
                }
                catch (Exception ex)
                {
                    throw new ArgumentException("Error de conexión", ex);
                }
            }
        }
    }

    Persistes contra la db de esta manera usa .AddWithValue

    public static void ProcesarRT(int opcion, string idCia, string idOf, string idDoc, string fIni, string fFin, string aux, string nroLetras) { using (SqlConnection cn = Conexion.Conectar("default")) { using (SqlCommand cmd = cn.CreateCommand()) { cmd.CommandText = "Procesar_RT"; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@nOPC", opcion); cmd.Parameters.AddWithValue("@Cia", idCia); cmd.Parameters.AddWithValue("@Of", idOf); cmd.Parameters.AddWithValue("@IdDoc", idDoc); cmd.Parameters.AddWithValue("@F_Ini", fIni); cmd.Parameters.AddWithValue("@F_Fin", fFin); cmd.Parameters.AddWithValue("@Aux", aux); cmd.Parameters.AddWithValue("@cNroLetras", nroLetras); cmd.ExecuteNonQuery(); } } }

    SqlParameterCollection.AddWithValue (Método) (String, Object) 

    Suerte con tus operaciones CRUD


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú



    • Editado Pedro Ávila sábado, 14 de mayo de 2016 5:14 ...
    • Propuesto como respuesta Sergio Parra sábado, 14 de mayo de 2016 14:29
    sábado, 14 de mayo de 2016 4:56