Me resultó muy difícil obtener una respuesta, pero finalmente lo descubrí. Entonces, escribiré los pasos a continuación.
Antes de configurar su cadena de conexión en código, asegúrese de que realmente pueda acceder a su base de datos. Comience, obviamente, iniciando sesión en el servidor de la base de datos usando SSMS (Sql Server Management Studio o su equivalente en otras bases de datos) localmente para asegurarse de tener acceso utilizando los detalles que desee utilizar.
A continuación (si es necesario), si está intentando acceder a la base de datos en un servidor separado, asegúrese de poder hacer lo mismo en SSMS. Así que configure SSMS en una computadora y asegúrese de que puede acceder al servidor con el nombre de usuario y la contraseña de ese servidor de base de datos.
Si no obtiene los 2 anteriores correctamente, simplemente está perdiendo el tiempo ya que no puede acceder a la base de datos. Esto puede deberse a que el usuario que configuró está equivocado, no tiene habilitado el acceso remoto (si es necesario) o los puertos no están abiertos (si es necesario), entre muchas otras razones, pero estas son las más comunes.
Una vez que haya verificado que puede acceder a la base de datos mediante SSMS. El siguiente paso, por el simple hecho de automatizar el proceso y evitar errores, es dejar que el sistema haga el trabajo por usted.
- Inicie un proyecto vacío, agregue su elección de Linq a SQL o Dataset (EF es bueno pero la cadena de conexión está incrustada dentro de una cadena EF con, quiero una limpia), y conéctese a su base de datos usando los detalles verificados arriba en el asistente de la cuerda de la estafa. Agregue cualquier tabla y guarde el archivo.
Ahora vaya a la configuración web y, mágicamente, verá una bonita cadena de conexión que funciona y que funciona con todos los detalles que necesita.
{A continuación, formaba parte de una publicación anterior, por lo que puede ignorar esto, lo dejo como referencia, ya que es la forma más básica de acceder a la base de datos solo desde el código. Desplácese hacia abajo y continúe desde el paso 2 a continuación. }
Supongamos que los pasos anteriores comienzan con algo como lo siguiente como cadena de conexión en el código subyacente:
string conString = "Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;";
Este paso es muy importante. Asegúrese de tener funcionando el formato anterior de cadena de conexión antes de realizar los siguientes pasos. Asegúrese de poder acceder a sus datos utilizando algún tipo de texto de comando sql que muestre algunos datos de una tabla en etiquetas o jefes de texto o lo que sea, ya que esta es la forma más sencilla de hacer una cadena de conexión.
Una vez que esté seguro de que el estilo anterior funciona, es hora de dar los siguientes pasos:
1. Exporte su literal de cadena (lo que está entre las comillas, incluidas las comillas) a la siguiente sección del archivo web.config (para múltiples cadenas de conexión, simplemente haga varias líneas:
<configuration>
<connectionStrings>
<add name="conString" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString2" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
<add name="conString3" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
{Lo anterior era parte de una publicación anterior, después de realizar los 3 pasos principales, este proceso completo se realizará por ti, por lo que puedes ignorarlo. Lo dejo aquí para mi propia referencia. }
2. Ahora agregue la siguiente línea de código al código C # detrás, preferiblemente justo debajo de la definición de clase (es decir, no dentro de un método). Esto apunta a la carpeta raíz de su proyecto. Esencialmente es el nombre del proyecto. Esta suele ser la ubicación del archivo web.config (en este caso, mi proyecto se llama MyProject.
static Configuration rootWebConfig = WebConfigurationManager.OpenWebConfiguration("/MyProject");
3. Ahora agregue la siguiente línea de código al código C # subyacente. Esto configura una constante de cadena a la que puede hacer referencia en muchos lugares a lo largo de su código en caso de que necesite una conString en diferentes métodos.
const string CONSTRINGNAME = "conString";
4. A continuación, agregue la siguiente línea de código al código C # subyacente. Esto obtiene la cadena de conexión del archivo web.config con el nombre conString (de la constante anterior)
ConnectionStringSettings conString = rootWebConfig.ConnectionStrings.ConnectionStrings[CONSTRINGNAME];
5. Finalmente, donde originalmente habría tenido algo similar a esta línea de código:
SqlConnection con = new SqlConnection(conString)
lo reemplazará con esta línea de código:
SqlConnection con = new SqlConnection(conString.ConnectionString)
Después de realizar estos 5 pasos, su código debería funcionar como antes. Hense la razón por la que prueba primero la interpretación en su formato original para saber si es un problema con la cadena de conexión o si es un problema con el código.
Soy nuevo en C #, ASP.Net y Sql Server. Así que estoy seguro de que debe haber una mejor manera de hacer este código. También agradecería comentarios sobre cómo mejorar estos pasos si es posible. He buscado por todas partes algo como esto, pero finalmente lo descubrí después de muchas semanas de arduo trabajo. Mirándolo yo mismo, sigo pensando que debe haber una manera más fácil.
Espero que esto sea útil.