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

C# .Net C如何连接到外部SQL Server数据库?OleDb还是其他?,c#,.net,sql,database,oledb,C#,.net,Sql,Database,Oledb,您好,我想知道如何连接到C、.NET中的外部SQL Server数据库 例如,如果我有以下参数: SQL信息 通过浏览器访问数据库的Url:Sqlweb.companyname.com 数据库用户名:username 服务器:Dcms xxx 数据库名称:数据库名称 数据库密码:密码 ? 我知道如何连接到内部:Provider=Microsoft.Jet.OLEDB.4.0;数据源=+System.AppDomain.CurrentDomain.BaseDirectory+..\\Files\\

您好,我想知道如何连接到C、.NET中的外部SQL Server数据库

例如,如果我有以下参数:

SQL信息

通过浏览器访问数据库的Url:Sqlweb.companyname.com 数据库用户名:username 服务器:Dcms xxx 数据库名称:数据库名称 数据库密码:密码 ?

我知道如何连接到内部:Provider=Microsoft.Jet.OLEDB.4.0;数据源=+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/>");

}
没用!谢谢你的帮助

根据评论编辑:

是的,那是我的一个错误,谢谢。因为第一个是access,第二个是SQL Server。这就是SQLServer2005。但我对.net和所有这些都是新手。。。我在connectionstring.com中找到了第一个和第二个连接,但我无法找到或理解如何将其用于此连接

你能帮个忙吗,然后把孔连接起来?谢谢-Vilius 7分钟前


我是说我还需要使用OleDB吗?是否应该有Provider=Microsoft.Jet.OLEDB.4.0;在那个连接字符串中?我在哪里发布Dcms xxx的服务器,或sql server sqlweb.companyname.com的url?谢谢你的帮助

您确定要连接的是SQL Server数据库吗? 您的内部示例连接到Microsoft Access数据库OLEDB提供程序和数据库文件扩展名.mdb

如果您的外部数据库实际上是SQL Server数据库,建议使用SqlConnection、SqlDataReader等,而不是OleDbConnection等。 或者,如果你真的想使用OleDb,你需要一个不同的连接字符串。
请参阅SQL Server的connectionString.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>

我强烈建议您看看:


这是对所有主要数据库的连接字符串主题的一种快速、正面的处理。

是的,这是我的一个错误,谢谢。因为第一个是access,第二个是sql。这是2005年的sql。但我对.net和所有这些都是新手。。。我在connectionstring.com中找到了第一个和第二个连接,但我无法找到或理解如何将其用于此连接。。。你能帮个忙吗,然后把孔连接起来?谢谢我的意思是我还需要使用OleDB吗?是否应该有Provider=Microsoft.Jet.OLEDB.4.0;在那个连接字符串中?我在哪里发布Dcms xxx的服务器,或sql server sqlweb.companyname.com的url?谢谢你的帮助!非常感谢,我现在就试试看:;要使用的数据库地址?Dcms xxx或sql server sqlweb.companyname.com的url取决于其是否在本地网络上的服务器。如果不使用完整地址sqlweb.companyname.com,那么在连接Dcms xxx时我们根本不使用该服务器?我认为它不在本地网络上:您需要使用指向IP的DNS。因为它不在本地网络上,所以不能使用该名称。祝你好运!这样,我还得到System.InvalidOperationException:“System.Data.SqlClient”提供程序未在本地计算机上注册
 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
                    }
                }
            }
        }