Configuración de la cadena de conexión en ASP.NET a SQL SERVER

Respuestas:

148

También puedes usar esto, es más simple. Lo único que necesita configurar es "YourDataBaseName".

  <connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=localhost;Initial Catalog=YourDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Dónde colocar la cadena de conexión

<?xml version='1.0' encoding='utf-8'?>  
  <configuration>  
    <connectionStrings>  
      <clear />  
      <add name="Name"   
       providerName="System.Data.ProviderName"   
       connectionString="Valid Connection String;" />  
    </connectionStrings>  
  </configuration>  
Aristos
fuente
Cómo usarlo en mi código C # detrás cuando quiero ejecutar alguna consulta.
Nikhil Tamhankar
1
Puede ver información detallada sobre la cadena de conexión en dot net desde: connectionstrings.com/sql-server-2008
Vimal bhatt
4
Me pregunto cuántas personas han copiado y pegado esa línea ... :-) Creo que esta es la trigésima vez que he estado en esta pregunta ... tal vez debería aprenderlo de memoria.
Ayo Adesina
A esta versión le faltan los atributos de nombre de usuario / contraseña.
Burgi
@Burgi No, no le falta eso (¿ver el Integrated Security=True?), No es necesario porque la base de datos lee el archivo por sus permisos - pruébelo. Esta es la razón por la que digo que es más simple, porque no es necesario agregarlos. Si no lo usa, abra su base de datos y establezca allí el permiso correcto, en la base de datos y en los archivos
Aristos
107

Por alguna razón, no veo la respuesta simple aquí.

Pon esto en la parte superior de tu código:

using System.Web.Configuration;
using System.Data.SqlClient; 

Pon esto en Web.Config:

<connectionStrings >
    <add
         name="myConnectionString" 
         connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

y dónde desea configurar la variable de conexión:

SqlConnection con = new SqlConnection(
    WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
Ray Suelzer
fuente
5
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionStringpodría ser más técnicamente correcto.
aplastar
2
También necesitaba:using System.Data.SqlClient;
nu everest
21

Me resultó muy difícil obtener una respuesta, pero finalmente lo descubrí. Entonces, escribiré los pasos a continuación.

  1. 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.

  2. 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.

  1. 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.

Francis Rodgers
fuente
14

debería estar dentro del <configuration>nodo:

  <connectionStrings >
    <add name="myconnectionstring" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

este sitio tiene más información sobre él:

Derek
fuente
1
Cómo usarlo en mi código C # cuando quiero ejecutar alguna consulta en asp.net 4
Nikhil Tamhankar
7

Conexión en WebConfig

Agregue su cadena de conexión al <connectionStrings>elemento en el Web.configarchivo.

<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"   providerName="System.Data.SqlClient" />
</connectionStrings>

En Class.Cs

public static string ConnectionString{
get{
return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;}
set{}
samir
fuente
6

en el encabezado

using System.Configuration;

en codigo

SqlConnection conn = new SqlConnection(*ConfigurationManager.ConnectionStrings["connstrname"].ConnectionString*);
masoud Cheragee
fuente
3

También puede usar el archivo de configuración externo para especificar la sección de cadenas de conexión y consultar ese archivo en el archivo de configuración de la aplicación como en web.config

Como en el web.configarchivo:

<configuration>  
    <connectionStrings configSource="connections.config"/>  
</configuration>  

El connections.configarchivo de configuración externo contendrá la sección de conexiones

<connectionStrings>  
  <add name="Name"   
   providerName="System.Data.ProviderName"   
   connectionString="Valid Connection String;" />  

</connectionStrings>  

La modificación del contenido del archivo de configuración externo no reiniciará la aplicación (como lo hace ASP.net por defecto con cualquier cambio en los archivos de configuración de la aplicación)

Surjit SD
fuente
2

Si desea escribir una cadena de conexión en Web.config, escriba debajo de la picadura dada

<connectionStrings>
  <add name="Conn" connectionString="Data Source=192.168.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com"
   providerName="System.Data.SqlClient" />
 </connectionStrings>

O

estás justo en el archivo aspx.cs como

SqlConnection conn = new SqlConnection("Data Source=12.16.1.25;Initial Catalog=Login;Persist Security Info=True;User ID=sa;Password=example.com");
Krishna Patel
fuente
2

Puedes poner esto en tu web.configarchivo connectionStrings:

<add name="myConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" providerName="System.Data.SqlClient"/>
Aditya
fuente
2

Puede utilizar el siguiente formato:

  <connectionStrings>
    <add name="ConStringBDName" connectionString="Data Source=serverpath;Initial Catalog=YourDataBaseName;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
  </connectionStrings>

Lo más probable es que aparezca la etiqueta connectionstring en web.config después <appSettings>

Prueba esto.

C Más nítido
fuente
1

Puedes probar esto. Es muy simple

<connectionStrings>         
    <add name="conString" connectionString="Data Source=SQLServerAddress;Initial Catalog=YourDatabaseName; User Id=SQLServerLoginId; Password=SQLServerPassword"/>
</connectionStrings>
Animesh Kumar Ghosh
fuente
OP preguntó "dónde en web.config".
Steve Smith
0

Pruebe esto para su cadena de conexión.

 Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 User ID=myDomain\myUsername;Password=myPassword;
Santosh Wavare
fuente
¡Bienvenido a Stack Overflow! Cuando publica una respuesta a una pregunta anterior, es bueno agregar algo de contexto, en cuanto a por qué su respuesta es mejor que las anteriores. De lo contrario, corre el riesgo de pasar desapercibido al final de la lista de respuestas.
Monolo
0

¡¡ACABO DE ENCONTRAR!! Debe poner esta conexión de cadena y apuntar directamente a su base de datos . Mismo caso en el servidor.

"Provider=Microsoft.ACE.OLEDB.12.0; 
 Data Source=c:/inetpub/wwwroot/TEST/data/data.mdb;"

¡¡Funciona!! :)

Dedeco
fuente
0

Almacene la cadena de conexión en web.config

Es una buena práctica almacenar la cadena de conexión para su aplicación en un archivo de configuración en lugar de como una cadena codificada en su código. La forma de hacer esto difiere entre .NET 2.0 y .NET 3.5 (y superior). Este artículo cubre ambos. https://www.connectionstrings.com/store-connection-string-in-webconfig/

Markoni
fuente
-1

Cree una sección llamada <connectionStrings></connectionStrings>en su web.configinterior y <configuration></configuration>luego agregue diferentes cadenas de conexión, por ejemplo

<configuration>

  <connectionStrings>
   <add name="ConnectionStringName" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True"/>
  </connectionStrings>

</configuration>

Aquí hay una lista de todos los diferentes formatos de cadena de conexión https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

Chico
fuente
"Cree una sección llamada <connectionStrings> </connectionStrings> en su web.config" - ¿dónde en web.config?
Steve Smith
Hijo de la etiqueta "configuration", más información docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…
Guy