【问题标题】:Connection String via IP Address For SQL ServerSQL Server 通过 IP 地址的连接字符串
【发布时间】:2015-05-29 14:22:32
【问题描述】:

我想创建连接字符串,以便可以在我的 C# 代码中使用 OleDb 作为提供程序和服务器 IP 地址远程连接到 SQL 数据库。

注意 1:我使用 OleDb 是因为我想处理不同的数据库类型。 SQL 只是一个例子。 注2:数据库驻留在另一台机器上(另一台网络上的机器)

我完成了从另一台机器连接的所有设置(防火墙、启用 TCP/IP..等),现在我可以通过指定(服务器名称:我的计算机名称-PC\Instance)使用 Microsoft SQL Server Management 2014 远程连接name) 并使用 SQL Authentication 然后输入用户名和密码并按连接,然后一切顺利,我连接成功。

但是我尝试了很多组合来在我的 C# 代码中构建连接字符串,除了这个之外,它们都不起作用:

OleDbConnection conn = new OleDbConnection(@"provider = sqloledb; data source = MyCompName-PC\sqlexpress; Initial Catalog = DataBase1 ; user id = MyUsername ; password = MyPassword ;");

否则,如果我尝试在数据源中使用我的服务器公共 IP 地址而不是 MyCompName,它会一直给我错误:找不到服务器或拒绝访问。

我在 connectionstrings.com 中搜索,但问题仍然存在。

【问题讨论】:

  • 如果它有效,问题出在哪里?

标签: c# mysql sql-server


【解决方案1】:

从您的帖子看来您正在尝试连接到SQL Server 数据库,那么您为什么要使用OleDbConnection?而不是使用SQL Server 连接提供程序。

OleDbConnection 连接提供者用于连接到MS Access 数据库。

你应该使用SqlConnection

SqlConnection conn = new SqlConnection("data source = MyCompName-PC\sqlexpress; Initial Catalog = DataBase1 ; user id = MyUsername ; password = MyPassword ;")

@AlexK 评论的更多信息请参见SQLConnection Reference

【讨论】:

  • 感谢@AlexK。在答案中包含该链接。
  • 我使用 OleDb 是因为我想处理不同的数据库类型。我只是在我的问题中使用 SQL DB 作为示例。我想在数据源中使用 IP 地址,以便当它在另一个网络上时我可以连接到数据库。想象一下 SQL DB 驻留在美国某处的服务器上,而我的客户想从他在欧洲的 PC 连接到它。做这种事情的连接字符串是什么?就是这个问题。
  • 不,这不是推荐的最佳方式。如果您真的想处理不同的数据库类型,请尝试使用Abstract DB factory 模式,但使用确切的数据库提供程序,
  • 当今市场上几乎所有流行的数据库引擎(SQL Server、Oracle、MySql、Sqlite、PostgreSql 等)都有 ADO.Net 连接器。我仍然不明白你为什么要使用OleDbConnection。除此之外,ADO.Net 提供程序还为您提供了一个 ConnectionBuilder 类,它将为您处理所有这些连接字符串的内容。
猜你喜欢
  • 2013-07-18
  • 1970-01-01
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多