.Net C#如何连接到外部SQL Server数据库? OleDb或其他?

.Net C#如何连接到外部SQL Server数据库? OleDb或其他?

问题描述:

嗨我想知道我应该如何连接到C#,.NET中的外部SQL Server数据库?.Net C#如何连接到外部SQL Server数据库? OleDb或其他?

例如,如果我有没有参数:

SQL信息

  • 的网址,获取数据库(整个浏览器也):Sqlweb.companyname.com
  • 数据库用户名:用户名
  • Server:Dcms-xxx
  • Databasename:databaseName
  • Databasepassword:password

我知道如何连接到内部:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.AppDomain.CurrentDomain.BaseDirectory + "..\\Files\\MapPlaces\\Database.mdb;";

但对于外部?

我曾尝试:

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/>"); 

} 

没有工作!感谢您的帮助 !

从评论编辑:

是的,这是一个我的错误,谢谢。因为第一个是访问和是第二个是SQL Server。它是SQL Server 2005.但我是新来的.NET和所有的......我已经找到第一个和第二个在那connectionstring.com,但我找不到或不知道如何使用这个...

你能帮忙,只是张贴孔洞连接?谢谢 - Vilius 7分钟前

我的意思是我还需要使用OleDB吗?应该有“Provider = Microsoft.Jet.OLEDB.4.0;”在那个连接字符串?我在哪里发布什么(服务器(即Dcms-xxx),或SQL服务器(sqlweb.companyname.com)的网址)?谢谢你的帮助 ! -

我会添加一个connectionString到我的app/web.config。

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

上面的例子是你如何指定一个MSSQL连接的ConnectionString的,和下面的方式来使用这个的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

非常感谢你会尝试现在:);)数据库地址女巫使用?服务器(即Dcms-xxx)或sql服务器的网址(sqlweb.companyname.com) – Vilius

+0

取决于它是否在本地网络上。如果没有使用完整的地址(sqlweb.companyname.com)。 – tskulbru

+1

这样服务器(即Dcms-xxx)连接时根本不使用?它不在本地网络上(我认为:)) – Vilius

你确定它是一个SQL Server数据库,你试图连接到?
你的“内部”例如连接到Microsoft Access数据库(OLEDB提供程序和数据库文件的扩展名.mdb)中

如果外部数据库确实是一个SQL Server数据库,推荐的方式是使用SqlConnectionSqlDataReader等代替OleDbConnection
或者,如果你真的想使用OleDb,你需要一个不同的连接字符串。
请参阅connectionstrings.com(对于SQL Server 200820052000,取决于您尝试连接的内容)。

+0

是的,这是我的错,谢谢。由于第一个是访问和是第二个是SQL。这是2005年的SQL。但我对.net和所有这些都是陌生的...我已经在connectionstring.com中找到了第一个和第二个,但我找不到或理解如何使用这个...你能帮忙吗,只是发布孔连接?谢谢 – Vilius

+0

我的意思是我仍然需要使用OleDB?应该有“Provider = Microsoft.Jet.OLEDB.4.0;”在那个连接字符串?我在哪里发布什么(服务器(即Dcms-xxx),或SQL服务器(sqlweb.companyname.com)的网址)?谢谢你的帮助 ! – Vilius

我会强烈建议考虑看看:

http://www.connectionstrings.com/

这是一个快速的,“在你的脸”治疗为所有主要的数据库连接字符串的主题。