2011-09-01 9 views
5

Hola me gustaría saber cómo debo conectarme a la base de datos externa de SQL Server en C#, .NET?.Net C# cómo conectarse a una base de datos SQL Server externa? OleDb u otro?

Por ejemplo si tengo allí parámetros:

información SQL

  • Url llegar a la base de datos (a través del navegador también): Sqlweb.companyname.com
  • nombre de usuario de base de datos: Nombre de usuario
  • Servidor: Dcms-xxx
  • Nombre de base de datos: Nombre de base de datos
  • Contraseña de base de datos: contraseña

?

sé cómo conectarse a interno: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.AppDomain.CurrentDomain.BaseDirectory + "..\\Files\\MapPlaces\\Database.mdb;";

Pero ¿qué pasa externo?

que he intentado:

string nowConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Sqlweb.companyname.com;Initial Catalog = databaseName; User Id = Username; Password = Password;"; 

System.Data.OleDb.OleDbConnection dbcon = new System.Data.OleDb.OleDbConnection(nowConString); 

string sql = "SELECT * FROM XXXTable"; 

dbcon.Open(); 

System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sql, dbcon); 

System.Data.OleDb.OleDbDataReader reader; 

reader = cmd.ExecuteReader(); 

ScriptStuff.Append("Reader created!<br/>"); 

while (reader.Read()) 
{ 
    string companyName = reader.GetValue(1).ToString(); 

    ScriptStuff.Append(companyName+"<br/>"); 

} 

no funcionó! Gracias por tu ayuda !

Editado de:

Sí que fue uno de mi error, gracias. Desde el primero fue el acceso y SÍ el segundo es SQL Server. Y es SQL Server 2005. Pero soy nuevo en .net y todo eso ... He encontrado el primero y el segundo en ese connectionstring.com pero no pude encontrar o entender cómo usar eso para este ...

¿Podría ayudarme y solo publicar una conexión de orificio? Gracias - Vilius hace 7 minutos

Quiero decir, ¿todavía necesito usar OleDB? debería haber "Provider = Microsoft.Jet.OLEDB.4.0;" en esa cadena de conexión? ¿Dónde publico qué (servidor (ese Dcms-xxx), o url del servidor sql (sqlweb.companyname.com))? GRACIAS POR TU AYUDA ! -

Respuesta

1

Agregaría un connectionString a mi aplicación/web.config.

<connectionStrings> 
    <add name="AspnetdbConnectionString" 
     connectionString="Data Source=<databaseadress>;Initial Catalog=<database>;User Id=<user>;Password=password>" 
     providerName="System.Data.SqlClient" 
    /> 
</connectionStrings> 

El ejemplo anterior es como se especifica una connectionstring para una conexión MSSQL, y por debajo de una manera de utilizar este connectionstring.

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AspnetdbconnectionString"].ConnectionString)) 
     { 
      cn.Open(); 
      using (SqlCommand cm = cn.CreateCommand()) 
      { 
       cm.CommandType = CommandType.Text; 
       cm.CommandText = "SELECT * FROM ..."; 
       using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) 
       { 
        while (dr.Read()) 
        { 
         // do stuff 
        } 
       } 
      } 
     } 
+0

Muchas gracias lo intentaré :);) dirección de la base de datos que uno debe usar? servidor (que Dcms-xxx), o url del servidor sql (sqlweb.companyname.com) – Vilius

+0

Depende si está en una red local o no. Si no, use la dirección completa (sqlweb.companyname.com). – tskulbru

+1

para que el servidor (ese Dcms-xxx) no usemos en absoluto cuando se conecta? No está en la red local (creo :)) – Vilius

0

¿Estás seguro de que es una base de datos de SQL Server a la que intentas conectarte?
Su ejemplo "interno" se conecta a una base de datos de Microsoft Access (proveedor OLEDB y el archivo de base de datos de la extensión .mdb)

Si su base de datos externa es realmente una base de datos SQL Server, la forma recomendada está utilizando SqlConnection, SqlDataReader y así sucesivamente vez de OleDbConnection etc.
O, si realmente desea utilizar OleDb, necesita una cadena de conexión diferente.
Consulte connectionstrings.com (para SQL Server 2008, 2005 o 2000, dependiendo de lo que intente conectarse).

+0

Sí, fue uno de mis errores, gracias. Desde el primero fue acceso y SÍ segundo es sql. Y es 2005 sql. Pero soy nuevo en .net y todo eso ... he encontrado el primero y el segundo en ese connectionstring.com pero no pude encontrar o entender cómo usar eso para este ... ¿Podrías ayudar, y solo publicar conexión de orificio? Gracias – Vilius

+0

Quiero decir, ¿todavía necesito usar OleDB? debería haber "Provider = Microsoft.Jet.OLEDB.4.0;" en esa cadena de conexión? ¿Dónde publico qué (servidor (ese Dcms-xxx), o url del servidor sql (sqlweb.companyname.com))? GRACIAS POR TU AYUDA ! – Vilius

0

, lo recomiendo echar un vistazo a:

http://www.connectionstrings.com/

Es un rápido "en que se enfrenta" tratamiento del tema de las cadenas de conexión para todas las principales bases de datos.

Cuestiones relacionadas