通过internet的c#sql连接
我想知道我是否可以在不安装sql server的情况下从另一台计算机连接到sql数据库(这是可能的)。我正在创建一个c#wpf程序,该程序将在我的PC中的sql数据库中获取和插入数据,在所有使用internet安装该程序的计算机中。我应该在连接字符串中使用我的internet IP,还是什么,因为我很困惑 我的连接字符串通过internet的c#sql连接,c#,sql,C#,Sql,我想知道我是否可以在不安装sql server的情况下从另一台计算机连接到sql数据库(这是可能的)。我正在创建一个c#wpf程序,该程序将在我的PC中的sql数据库中获取和插入数据,在所有使用internet安装该程序的计算机中。我应该在连接字符串中使用我的internet IP,还是什么,因为我很困惑 我的连接字符串 String connString = @"Network Library=dbmssocn; Network Address=127
String connString = @"Network Library=dbmssocn;
Network Address=127.0.0.1,1433;
Integrated security=SSPI;
Initial Catalog=db";
另外,我忘了说我是编程领域的新手,我想通过局域网连接到sql数据库是的,这是可能的。您可以使用ADO.NET或实体框架来实现此目标。但是,我建议您在托管数据库的服务器上设置一个web api,您可以调用它来获取/发布数据。我个人不会在计划部署到最终用户工作站的程序中硬编码任何连接字符串。只需调用web api,让您的web api与数据库通信。假设您的远程数据库(在您的其他计算机上)接受远程连接,您可以通过传统的ADO.NET连接来实现这一点,也可以使用类似ORM的实体框架来处理连接 您可以看到下面的一个示例,该示例利用了类,该类完全按照其名称的含义进行操作:
using(var sqlConnection = new SqlConnection("Your Connection String"))
{
var query = "Your Query";
using(var sqlCommand = new SqlCommand(query,sqlConnection))
{
sqlConnection.Open();
// Execute your query here using sqlCommand.ExecuteNonQuery()
// or some other execution method
}
}
您只需要这样做。您试过了吗?是的,现在我将发布我的连接。我还忘了提到,不仅仅是在lan连接中连接,而是在lan之外,您可以通过System.Data.SqlClientSQL来实现这一点。SqlClientSQL只是一种查询语言,但您所说的是什么具体的RDBMS?请用数据库系统标记问题,如
oracle
、postgresql
、db2
、sqlserver
或您可能使用的任何其他系统假设您的远程数据库(在您的另一台计算机上)接受远程连接
值得一提的是,将需要端口转发。除此之外;通过internet进行SQL连接并不是一个好主意。我不是想暗示这应该是直接的方法。我只是想说明应用程序如何连接SQL数据库(通过API或其他方式)。按照Jacob的建议使用Web API显然是一种直接公开它的更安全的方法。我不想在任何服务器上托管数据库,而是想保留在我的pc上,但当我在其他pc上使用应用程序时,数据应通过互联网存储在我的pc/sql数据库中。我们可能需要更多关于您正在使用的数据库/环境类型以及您正试图实现的目标的详细信息。默认情况下,如果您使用Visual Studio进行开发,则可以使用SQL Server Express LocalDB在本地进行开发。但是,这些数据库不支持远程连接,因此您无法在自己的PC之外访问它。如果安装SQL Server,您可以创建一个非本地数据库,启用远程连接并远程访问它(假设您正在使用它进行开发),否则你可以创建一个API并公开wayRion williams的数据,你在回答使用查询时提到我应该使用什么查询虽然这并不能真正回答问题,但我认为这是实现OP目标的一个更好的方法,而不是通过互联网的SQL连接。我必须同意这一点。我开始工作的老板是个SQL专家。对应用程序开发一无所知。不过这家伙不错。我必须向他说明为什么要将他的SQL server(如果他将其公开给互联网)放在API后面。限制黑客的攻击面,以及使用证书和加密添加身份是这样做的众多原因之一。